Ich versuche, 10K Namen in Parent-Tabelle einfügen, mit 10 beschriebenen Namen beim Hinzufügen von Nummer auf der Rückseite. Aber man schafft es, nur die ersten Tausend zu schreiben. Ich brauche deine Augen, um zu sehen, wo ich versage. Ich verstehe, dass @i nicht zunimmt, aber weiß nicht warum.SQL: While-Schleife in While-Schleife
DECLARE @TempNameTable table (ID int , Name varchar (50))
DECLARE @i int = 1,
@tempNameValue varchar(50),
@randNumber int = 1
INSERT INTO @TempNameTable VALUES
(1,'Jonas'), (2,'Petras'),(3,'Antanas')
, (4,'Stasys'), (5,'Dainius'), (6,'Giedrius')
, (7,'Mindaugas'), (8,'Povilas'), (9,'Kestutis')
, (10,'Darius')
WHILE ((SELECT COUNT(Name) FROM Parent) < 10000)
BEGIN
WHILE @i < 11
BEGIN
SET @tempNameValue = CASE
WHEN @i = 1 THEN
(SELECT Name from @TempNameTable WHERE ID = @i)
WHEN @i = 2 THEN
(SELECT Name from @TempNameTable WHERE ID = @i)
WHEN @i = 3 THEN
(SELECT Name from @TempNameTable WHERE ID = @i)
WHEN @i = 4 THEN
(SELECT Name from @TempNameTable WHERE ID = @i)
WHEN @i = 5 THEN
(SELECT Name from @TempNameTable WHERE ID = @i)
WHEN @i = 6 THEN
(SELECT Name from @TempNameTable WHERE ID = @i)
WHEN @i = 7 THEN
(SELECT Name from @TempNameTable WHERE ID = @i)
END
WHILE @randNumber < 1000
BEGIN
INSERT INTO Parent VALUES
(@tempNameValue + CAST(@randNumber as varchar(1000)))
SET @randNumber = @randNumber + 1
END
SET @i = @i + 1
END
END
beizutreten Warum eine CASE verwenden, wenn Ihre Abfrage die gleiche ist? Ihre @ i Variable garantiert eine andere, wo Bedingung –
Markieren Sie die DBMS Sie verwenden (vielleicht SQL Server?) Dieser Code ist weit von ANSI SQL-konform. – jarlh
Ich benutze SQL Server. – LTnewbie