我需要使用插入另一個表後生成的id更新一個表中的列。這是我有:如何在使用插入選擇時基於插入的ID更新列?
tbl1 (id, tbl2id, col1, col2)
tbl2 (id, col1, col2)
insert into tbl2
select col1, col2
from tbl1
where tbl1.tbl2id is null
在這一點上我需要用ID來填充tbl1.tbl2id由上述INSERT語句插入的所有行,因此,如果上面的插入語句再次運行,我不會在tbl2中有重複。我在SQL Server 2005.
如果是填充從插入到不同的表數據的表,爲什麼不使用觸發器來執行插入?您將在觸發器的「插入」表中提供所有插入的數據。 – Tony 2011-04-12 22:07:55
我正在修改現有的存儲過程相當長,所以我想知道是否有辦法從存儲介質本身做到這一點。將sproc轉換爲觸發器很容易嗎? – Prabhu 2011-04-12 22:10:08
您可以將觸發器視爲在INSERT,UPDATE或DELETE(或三者的任意組合)之後調用的存儲過程。看看觸發器sql的語法:http://msdn.microsoft.com/en-us/library/ms189799.aspx – Tony 2011-04-12 22:12:11