日本好好热aⅴ|国产99视频精品免费观看|日本成人aV在线|久热香蕉国产在线

  • <cite id="ikgdy"><table id="ikgdy"></table></cite>
    1. 西西軟件園多重安全檢測下載網(wǎng)站、值得信賴的軟件下載站!
      軟件
      軟件
      文章
      搜索

      首頁西西教程數(shù)據(jù)庫教程 → SQL SERVER 各類觸發(fā)器的完整語法及參數(shù)說明

      SQL SERVER 各類觸發(fā)器的完整語法及參數(shù)說明

      相關軟件相關文章發(fā)表評論 來源:西西整理時間:2013/5/3 20:24:27字體大小:A-A+

      作者:西西點擊:115次評論:0次標簽: SQLSERVER

      語法:

      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_name
      
      
      Trigger 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_name
      
      
      Trigger 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

       參數(shù):

      schema_name

      DML 觸發(fā)器所屬架構(gòu)的名稱。DML 觸發(fā)器的作用域是為其創(chuàng)建該觸發(fā)器的表或視圖的架構(gòu)。對于 DDL 或登錄觸發(fā)器,無法指定 schema_name。

      trigger_name

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

      table | view

      對其執(zhí)行 DML 觸發(fā)器的表或視圖,有時稱為觸發(fā)器表或觸發(fā)器視圖?梢愿鶕(jù)需要指定表或視圖的完全限定名稱。視圖只能被 INSTEAD OF 觸發(fā)器引用。不能對局部或全局臨時表定義 DML 觸發(fā)器。

      DATABASE

      將 DDL 觸發(fā)器的作用域應用于當前數(shù)據(jù)庫。如果指定了此參數(shù),則只要當前數(shù)據(jù)庫中出現(xiàn) event_type或 event_group,就會激發(fā)該觸發(fā)器。

      ALL SERVER

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

      WITH ENCRYPTION

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

      EXECUTE AS

      指定用于執(zhí)行該觸發(fā)器的安全上下文。允許您控制 SQL Server 實例用于驗證被觸發(fā)器引用的任意數(shù)據(jù)庫對象的權(quán)限的用戶帳戶。

      FOR | AFTER

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

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

      不能對視圖定義 AFTER 觸發(fā)器。

      INSTEAD OF

      指定執(zhí)行 DML 觸發(fā)器而不是觸發(fā) SQL 語句,因此,其優(yōu)先級高于觸發(fā)語句的操作。不能為 DDL 或登錄觸發(fā)器指定 INSTEAD OF。

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

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

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

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

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

      event_type

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

      event_group

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

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

      WITH APPEND

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

      NOT FOR REPLICATION

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

      sql_statement

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

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

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

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

      SELECT *
      FROM deleted 

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

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

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

      < method_specifier>

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

        相關評論

        閱讀本文后您有什么感想? 已有人給出評價!

        • 8 喜歡喜歡
        • 3 頂
        • 1 難過難過
        • 5 囧
        • 3 圍觀圍觀
        • 2 無聊無聊

        熱門評論

        最新評論

        發(fā)表評論 查看所有評論(0)

        昵稱:
        表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
        字數(shù): 0/500 (您的評論需要經(jīng)過審核才能顯示)