一尘不染

使用while循环在表中插入多个记录

sql

我想将几百行插入到指向其他表中pk的表中。我一直在尝试使用while循环在表中插入多个记录。我实际上是在设置测试数据。

这就是我在做什么:

declare @count int;
set @count = 4018;

while @count <= 5040 
begin
    INSERT INTO [MY_TABLE]
               ([pk_from_other_table]
               ,[..]
               ,[...]
               ,[..]
               ,[..]
               ,[...]
               ,[...]
               ,[..])
        select
               (pk_from_other_table,
               ,[..]
               ,[...]
               ,[..]
               ,[..]
               ,[...]
               ,[...]
               ,[..])
    @count = @count + 1;
end

但这似乎不起作用!谁能帮忙…我要做的就是插入记录数=主表中存在的记录数。

?关于如何实现此目标的任何想法吗?

我要么计数不正确的语法

或者

消息102,级别15,状态1,第17行’,’附近的语法不正确。


阅读 184

收藏
2021-05-16

共1个答案

一尘不染

您当前的语法问题是@count = @count + 1;,需要使用set @count = @count + 1

但…

不需要循环。您可以直接直接做一个大插入,例如:

insert into your_table (fk_col, other_col1, other_col2)
select pk_col, 'something', 'something else' 
from your_other_table

如果需要,可以where在上面添加一个子句。

2021-05-16