我试图在父表中插入10K个名字,使用10个描述的名字,同时在后面添加数字。但是设法只写了第一个1000。我需要你的眼睛来看看我哪里失败了。我确实理解@i不是在增加,但不知道为什么。
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发布于 2017-01-17 21:47:21
我假设您的查询是:
DECLARE @TempNameTable table (ID int , Name varchar (50))
DECLARE @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
SET @randNumber = 1
WHILE @randNumber <= 1000
BEGIN
INSERT INTO Parent
SELECT Name + CAST(@randNumber as varchar(1000))
FROM @TempNameTable
SET @randNumber = @randNumber + 1
END
ENDhttps://stackoverflow.com/questions/41698651
复制相似问题