SQLSERVER觸發器之臨時表

2021-06-27 13:30:38 字數 998 閱讀 9763

sql觸發器中,系統自動會生成兩張臨時表,分別是deleted 和 inserted 它們是邏輯(概念)表。也可理解為是臨時表。

為方便理解,可以這麼來認為inserted表和deleted表的作用:inserted表就是放新的記錄,delete表就是放舊的記錄。並且,它們的表結構與原表是完全相同的。

1。當你插入時,要插入的記錄是新的,所以可以在insert表中找到。

如:table1中本來就有n條記錄,但執行 insert into table1 value('1')   那麼,在table1的觸發器的  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

----------------------------------------------矽谷動力上看到的-------------------------

順便說一下,當對某張表建立觸發器後,分3種情況討論

1.插入操作(insert)

inserted表有資料,deleted表無資料

2.刪除操作(delete)

inserted表無資料,deleted表有資料

3.更新操作(update)

inserted表有資料(新資料),deleted表有資料(舊資料)

SQL server 之 觸發器

今天對觸發器研究了一下,之前的學習感覺挺朦朧的,今天鼓搗了一天,算是有了一點點了解,把學習的體會記錄了下來。常見的觸發器 觸發器的作用 自動化操作,減少了手動操作以及出錯的機率 現實工作中用的比較少,因為想讓他執行起來效率高很難 一 dml觸發器 insert delete update 不支援se...

mysql 觸發器 臨時表 Mysql觸發器

mysql觸發器 1.建立觸發器 注意 觸發器只能建立在永久表上,不能對臨時表建立觸發器,語法如下 create trigger trigger name trigger time trigger event on table name for each row trigger stmt trigg...

SQLServer之建立LOGON觸發器

登入觸發器將為響應 logon 事件而激發儲存過程。與 sql server例項建立使用者會話時將引發此事件。登入觸發器將在登入的身份驗證階段完成之後且使用者會話實際建立之前激發。因此,來自觸發器內部且通常將到達使用者的所有訊息 例如錯誤訊息和來自 print 語句的訊息 會傳送到 sql serv...