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

10-11 21:56
查看更多