我想将几百行插入到指向其他表中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行’,’附近的语法不正确。
您当前的语法问题是@count = @count + 1;,需要使用set @count = @count + 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在上面添加一个子句。
where