SQL Server存储过程 - 然后SELECT语句在INSERT语句中使用结果

Mat*_*ttP 2 sql-server stored-procedures

我正在编写一个存储过程,它将从一个表中获取结果,然后将它们复制到另一个表.它不完全匹配,我正在改变1列并忽略另一列.如果相关,则有5列,平均3-5个结果.

我基本上需要:

SELECT * FROM sometable WHERE somecolumn = 1
Run Code Online (Sandbox Code Playgroud)

然后是每一个结果

INSERT INTO anothertable (a,b,c) VALUES (@a, @b, @c)
Run Code Online (Sandbox Code Playgroud)

在存储过程中执行此操作的最佳方法是什么?

Ada*_*Dev 6

您可以在一个声明中执行此操作:

INSERT AnotherTable (a, b, c)
SELECT a, b, c
FROM SomeTable
WHERE SomeColumn = 1
Run Code Online (Sandbox Code Playgroud)

尽可能避免在循环/游标/ RBAR(Row By Agonizing Row)中进行操作,而是尝试在上述基于SET的方法中思考.