我正在编写一个存储过程,该过程将从一个表中获取结果,然后将其复制到另一个表中。这不是完全匹配,我要更改1列,而忽略另一列。如果有相关内容,则共有5列,平均结果为3-5。
我基本上需要:
SELECT * FROM sometable WHERE somecolumn = 1
然后对于每个结果
INSERT INTO anothertable (a,b,c) VALUES (@a, @b, @c)
在存储过程中执行此操作的最佳方法是什么?
最佳答案
您可以在一条语句中执行此操作:
INSERT AnotherTable (a, b, c)
SELECT a, b, c
FROM SomeTable
WHERE SomeColumn = 1
尽可能避免在循环/游标/ RBAR(行通过使行变灰)中执行操作,而应尝试使用上述基于SET的方法进行思考。
关于sql-server - SQL Server存储过程-SELECT语句,然后在INSERT语句中使用结果,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9617078/