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)
在存储过程中执行此操作的最佳方法是什么?
您可以在一个声明中执行此操作:
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的方法中思考.