首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >SQL: While循环中的While循环

SQL: While循环中的While循环
EN

Stack Overflow用户
提问于 2017-01-17 21:38:38
回答 3查看 3.9K关注 0票数 0

我试图在父表中插入10K个名字,使用10个描述的名字,同时在后面添加数字。但是设法只写了第一个1000。我需要你的眼睛来看看我哪里失败了。我确实理解@i不是在增加,但不知道为什么。

代码语言:javascript
运行
复制
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
EN

Stack Overflow用户

回答已采纳

发布于 2017-01-17 21:47:21

我假设您的查询是:

代码语言:javascript
运行
复制
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
END
票数 3
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41698651

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档