我正在编写一个存储过程,它将从一个表中获取结果,然后将它们复制到另一个表中。这不是完全匹配,我正在更改 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/