亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > SQL Server > 正文

SQL SERVER中各類觸發器的完整語法及參數說明

2024-08-31 00:57:34
字體:
來源:轉載
供稿:網友

語法:

Trigger on an INSERT, UPDATE, or DELETE statement to a table or view (DML Trigger)CREATE TRIGGER [ schema_name . ]trigger_name ON { table | view } [ WITH <dml_trigger_option> [ ,...n ] ]{ FOR | AFTER | INSTEAD OF } { [ INSERT ] [ , ] [ UPDATE ] [ , ] [ DELETE ] } [ WITH APPEND ] [ NOT FOR REPLICATION ] AS { sql_statement [ ; ] [ ,...n ] | EXTERNAL NAME <method specifier [ ; ] > }<dml_trigger_option> ::= [ ENCRYPTION ] [ EXECUTE AS Clause ]<method_specifier> ::= assembly_name.class_name.method_nameTrigger on a CREATE, ALTER, DROP, GRANT, DENY, REVOKE, or UPDATE STATISTICS statement (DDL Trigger)CREATE TRIGGER trigger_name ON { ALL SERVER | DATABASE } [ WITH <ddl_trigger_option> [ ,...n ] ]{ FOR | AFTER } { event_type | event_group } [ ,...n ]AS { sql_statement [ ; ] [ ,...n ] | EXTERNAL NAME < method specifier > [ ; ] }<ddl_trigger_option> ::= [ ENCRYPTION ] [ EXECUTE AS Clause ]<method_specifier> ::= assembly_name.class_name.method_nameTrigger on a LOGON event (Logon Trigger)CREATE TRIGGER trigger_name ON ALL SERVER [ WITH <logon_trigger_option> [ ,...n ] ]{ FOR| AFTER } LOGON AS { sql_statement [ ; ] [ ,...n ] | EXTERNAL NAME < method specifier > [ ; ] }<logon_trigger_option> ::= [ ENCRYPTION ] [ EXECUTE AS Clause ]<method_specifier> ::= assembly_name.class_name.method_name

 參數:

schema_name

DML 觸發器所屬架構的名稱。DML 觸發器的作用域是為其創建該觸發器的表或視圖的架構。對于 DDL 或登錄觸發器,無法指定 schema_name。

trigger_name

觸發器的名稱。trigger_name 必須遵循 標識符規則,但 trigger_name 不能以 # 或 ## 開頭。

table | view

對其執行 DML 觸發器的表或視圖,有時稱為觸發器表或觸發器視圖??梢愿鶕枰付ū砘蛞晥D的完全限定名稱。視圖只能被 INSTEAD OF 觸發器引用。不能對局部或全局臨時表定義 DML 觸發器。

DATABASE

將 DDL 觸發器的作用域應用于當前數據庫。如果指定了此參數,則只要當前數據庫中出現 event_type或 event_group,就會激發該觸發器。

ALL SERVER

將 DDL 或登錄觸發器的作用域應用于當前服務器。如果指定了此參數,則只要當前服務器中的任何位置上出現 event_type 或 event_group,就會激發該觸發器。

WITH ENCRYPTION

對 CREATE TRIGGER 語句的文本進行模糊處理。使用 WITH ENCRYPTION 可以防止將觸發器作為 SQL Server 復制的一部分進行發布。不能為 CLR 觸發器指定 WITH ENCRYPTION。

EXECUTE AS

指定用于執行該觸發器的安全上下文。允許您控制 SQL Server 實例用于驗證被觸發器引用的任意數據庫對象的權限的用戶帳戶。

FOR | AFTER

AFTER 指定 DML 觸發器僅在觸發 SQL 語句中指定的所有操作都已成功執行時才被觸發。所有的引用級聯操作和約束檢查也必須在激發此觸發器之前成功完成。

如果僅指定 FOR 關鍵字,則 AFTER 為默認值。

不能對視圖定義 AFTER 觸發器。

INSTEAD OF

指定執行 DML 觸發器而不是觸發 SQL 語句,因此,其優先級高于觸發語句的操作。不能為 DDL 或登錄觸發器指定 INSTEAD OF。

對于表或視圖,每個 INSERT、UPDATE 或 DELETE 語句最多可定義一個 INSTEAD OF 觸發器。但是,可以為具有自己的 INSTEAD OF 觸發器的多個視圖定義視圖。

INSTEAD OF 觸發器不可以用于使用 WITH CHECK OPTION 的可更新視圖。如果將 INSTEAD OF 觸發器添加到指定了 WITH CHECK OPTION 的可更新視圖中,則 SQL Server 將引發錯誤。用戶須用 ALTER VIEW 刪除該選項后才能定義 INSTEAD OF 觸發器。

{ [DELETE] [,] [INSERT] [,] [UPDATE] }

指定數據修改語句,這些語句可在 DML 觸發器對此表或視圖進行嘗試時激活該觸發器。必須至少指定一個選項。在觸發器定義中允許使用上述選項的任意順序組合。

對于 INSTEAD OF 觸發器,不允許對具有指定級聯操作 ON DELETE 的引用關系的表使用 DELETE 選項。同樣,也不允許對具有指定級聯操作 ON UPDATE 的引用關系的表使用 UPDATE 選項。

event_type

執行之后將導致激發 DDL 觸發器的 Transact-SQL 語言事件的名稱。DDL 事件中列出了 DDL 觸發器的有效事件。

event_group

預定義的 Transact-SQL 語言事件分組的名稱。執行任何屬于 event_group 的 Transact-SQL 語言事件之后,都將激發 DDL 觸發器。DDL 事件組中列出了 DDL 觸發器的有效事件組。

CREATE TRIGGER 運行完畢之后,event_group 還可通過將其涵蓋的事件類型添加到sys.trigger_events 目錄視圖中來作為宏使用。

WITH APPEND

指定應該再添加一個現有類型的觸發器。僅當兼容級別等于或低于 65 時,才需要使用此可選子句。如果兼容級別等于或高于 70,則不需要使用 WITH APPEND 子句來添加現有類型的其他觸發器。這是兼容級別設置等于或高于 70 的 CREATE TRIGGER 的默認行為。WITH APPEND 不能與 INSTEAD OF 觸發器一起使用。如果顯式聲明了 AFTER 觸發器,則也不能使用該子句。僅當為了向后兼容而指定了 FOR 時(但沒有 INSTEAD OF 或 AFTER)時,才能使用 WITH APPEND。如果指定了 EXTERNAL NAME(即觸發器為 CLR 觸發器),則不能指定 WITH APPEND。

NOT FOR REPLICATION

指示當復制代理修改涉及到觸發器的表時,不應執行觸發器。有關詳細信息,請參閱使用 NOT FOR REPLICATION 來控制約束、標識和觸發器。

sql_statement

觸發條件和操作。觸發器條件指定其他標準,用于確定嘗試的 DML、DDL 或 logon 事件是否導致執行觸發器操作。

嘗試上述操作時,將執行 Transact-SQL 語句中指定的觸發器操作。

觸發器可以包含任意數量和種類的 Transact-SQL 語句,但也有例外。觸發器的用途是根據數據修改或定義語句來檢查或更改數據;它不應向用戶返回數據。觸發器中的 Transact-SQL 語句常常包含控制流語言。

DML 觸發器使用 deleted 和 inserted 邏輯(概念)表。它們在結構上類似于定義了觸發器的表,即對其嘗試執行了用戶操作的表。在 deleted 和 inserted 表保存了可能會被用戶更改的行的舊值或新值。例如,若要檢索 deleted 表中的所有值,則使用:

SELECT *
FROM deleted 

DDL 和登錄觸發器通過使用 EVENTDATA (Transact-SQL) 函數來獲取有關觸發事件的信息。

DELETE、INSERT 或 UPDATE 觸發器中,如果兼容級別設置為 70,則 SQL Server 不允許在 inserted和 deleted 表中存在 text、ntext 或 image 列引用。不能訪問 inserted 和 deleted 表中的text、ntext 和 image 值。若要在 INSERT 或 UPDATE 觸發器中檢索新值,請將 inserted 表與原始更新表聯接。如果兼容級別等于或低于 65,則將為 inserted 或 deleted 的文本、ntext 或者允許 Null 值的 image 列返回 Null 值;如果列不能為 Null,則返回零長度的字符串。

如果兼容級別等于或高于 80,SQL Server 將允許通過表或視圖的 INSTEAD OF 觸發器來更新text、ntext 或 image 列。 

< method_specifier>

對于 CLR 觸發器,指定程序集與觸發器綁定的方法。該方法不能帶有任何參數,并且必須返回空值。class_name 必須是有效的 SQL Server 標識符,并且該類必須存在于可見程序集中。如果該類有一個使用“.”來分隔命名空間部分的命名空間限定名稱,則類名必須用 [] 或“ ”分隔符分隔。該類不能為嵌套類。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久热在线中文字幕色999舞| 久久中国妇女中文字幕| 亚洲综合在线播放| 国产精品电影观看| 欧美另类69精品久久久久9999| 中文一区二区视频| 国产福利视频一区二区| 91日本在线视频| 久久成人一区二区| 国产精品三级久久久久久电影| 在线观看欧美成人| 日韩精品在线视频美女| 亚洲精品99久久久久| 日韩有码片在线观看| 精品成人国产在线观看男人呻吟| 成人欧美一区二区三区黑人| 亚洲图片在区色| 欧美大人香蕉在线| 欧洲精品久久久| 亚州精品天堂中文字幕| 国产日韩亚洲欧美| 欧美大学生性色视频| 亚洲国产精品久久久久秋霞蜜臀| 欧美激情精品久久久久久黑人| 亚洲高清av在线| 国产欧亚日韩视频| 日韩精品视频在线| 91久久久久久久一区二区| 国产精品爽爽爽爽爽爽在线观看| 狠狠干狠狠久久| 亚洲免费福利视频| 久久久久久久久网站| 日韩一区二区三区在线播放| 欧美激情网站在线观看| 日韩成人小视频| 精品毛片网大全| 欧美激情综合色综合啪啪五月| 91免费视频国产| 一本大道香蕉久在线播放29| 91精品国产高清| 欧美激情久久久| 亚洲精品美女视频| 亚洲专区中文字幕| 九九视频直播综合网| 色婷婷久久一区二区| 亚洲精品一区中文| 日韩在线视频线视频免费网站| 欧美精品videosex牲欧美| 国产精品美女999| 欧美激情奇米色| 国产精欧美一区二区三区| 国产精品久久久久久久久久久久| 成人444kkkk在线观看| 日韩视频免费看| 国产精品久久一| 亚洲偷欧美偷国内偷| 国产精品福利无圣光在线一区| 欧美成人免费在线观看| 57pao国产精品一区| xxxx欧美18另类的高清| 亚洲国产欧美一区二区丝袜黑人| 97久久久久久| 日韩av电影在线网| 日韩在线精品视频| 尤物yw午夜国产精品视频| 国产精品第七影院| 一本色道久久综合亚洲精品小说| 国产精品久久久久久久久久久久久久| 日本精品久久久久久久| 久久精品成人欧美大片古装| 亚洲国产精久久久久久久| 欧美最猛性xxxxx亚洲精品| www.99久久热国产日韩欧美.com| 美日韩精品免费观看视频| 亚洲人成网站999久久久综合| 日韩在线视频一区| 国产精品国产三级国产aⅴ浪潮| 国产在线久久久| 午夜精品福利视频| 亚州成人av在线| 亚洲一区免费网站| 亚洲精品中文字幕有码专区| 海角国产乱辈乱精品视频| 成人精品网站在线观看| 黄网站色欧美视频| 成人性生交大片免费观看嘿嘿视频| 欧美电影免费播放| 91久久精品久久国产性色也91| 欧美极品美女视频网站在线观看免费| 欧美乱人伦中文字幕在线| 日韩美女主播视频| 亚洲一区二区三区乱码aⅴ| 亚洲女同精品视频| 97人人模人人爽人人喊中文字| 国产成人极品视频| 亚洲精品久久久久中文字幕欢迎你| 粉嫩老牛aⅴ一区二区三区| 国产精品夫妻激情| 国产精品美女主播在线观看纯欲| 欧美自拍视频在线观看| 欧美高清第一页| 奇米成人av国产一区二区三区| 国产精品美女久久| 在线看日韩欧美| 亚洲精品福利在线观看| 亚洲乱码国产乱码精品精| 日韩va亚洲va欧洲va国产| 国产精品极品尤物在线观看| 欧美电影院免费观看| 国内精品久久久久伊人av| 日韩精品在线播放| 久久五月天色综合| 欧美在线观看网站| 国产精品aaa| 亚洲精品久久久久国产| 亚洲美女免费精品视频在线观看| 亚洲美女在线观看| 国产精品99久久久久久久久久久久| 亚洲综合第一页| 免费成人高清视频| 91国内精品久久| 欧美日韩在线免费| 国产精品入口免费视| 亚洲欧美日韩中文在线制服| 精品久久久久久久久久久久久| 欧美国产日产韩国视频| 亚洲精品一区av在线播放| 亚洲经典中文字幕| 亚洲精品美女在线观看播放| 在线观看中文字幕亚洲| 亚洲第一中文字幕| 川上优av一区二区线观看| 亚洲精品日韩欧美| 国产一区二区三区直播精品电影| 久久人人爽人人爽人人片av高请| 国产一区视频在线| 国产精品电影在线观看| 国产精品网红直播| 国产免费一区二区三区香蕉精| 国产欧美久久一区二区| 国产精品丝袜白浆摸在线| 久久久电影免费观看完整版| 日韩网站免费观看| 久久人人爽人人爽爽久久| 久久精品福利视频| 久久精品国产欧美激情| 亚洲成人在线视频播放| 久久精品国产久精国产一老狼| 久久精品亚洲精品| 欧美日韩福利视频| 一本色道久久88综合亚洲精品ⅰ| 欧美激情第三页| 黑人狂躁日本妞一区二区三区| 5278欧美一区二区三区| 亚洲一区二区三| 国产精品视频精品视频| 97人人做人人爱| 亚洲裸体xxxx| 日韩欧美中文免费| 中国china体内裑精亚洲片| 亚洲国产精品一区二区三区| 亚洲性日韩精品一区二区| 欧美性xxxx极品hd满灌| 亚洲精品网址在线观看|