sql server觸發器中自動生成的臨時表
在sql server中,建立sql server觸發器后,會生成deleted 和inserted表,這兩張表可以理解為臨時表,下面就為您介紹sql server觸發器中自動生成的臨時表,供您參考。
sql server觸發器中,系統自動會生成兩張臨時表,分別是deleted 和inserted 它們是邏輯(概念)表。也可理解為是臨時表。
為方便理解,可以這么來認為Inserted表和Deleted表的作用:Inserted表就是放新的記錄,Delete表就是放舊的記錄。并且,它們的表結構與原表是完全相同的。
1。當你插入時,要插入的記錄是新的,所以可以在Insert表中找到。
如:table1中本來就有N條記錄,但執行 insert into table1 value('1') 那么,在table1的sql server觸發器的 Inserted表中,有且僅有同樣一條記錄。
select * from Inserted ,結果為: 1 而不是table1的N+1條記錄。
2。當你更新時,要更新的記錄是新的,所以可以在Inserted表中找到,被更新的記錄是舊的,所以可以在Deleted表中找到。
如:有條記錄 1 要改為 2
select * from Deleted 的結果為1 select * from Inserted 的結果為2
3。當你刪除時,要刪除的記錄是舊的,所以可以在Deleted表中找到。
如:表中有1,2,3,4 四條記錄,刪除其中三條,則 select * from deleted 的結果為 1,2,3
當對某張表建立sql server觸發器后,分3種情況討論
1.插入操作(Insert)
Inserted表有數據,Deleted表無數據
2.刪除操作(Delete)
Inserted表無數據,Deleted表有數據
3.更新操作(Update)
Inserted表有數據(新數據),Deleted表有數據(舊數據)
【編輯推薦】