SqlServer之觸發器

來源:互聯網
上載者:User

標籤:style   blog   http   io   color   os   ar   使用   for   

1.觸發器之理論:

觸發器(Trigger)是一種特殊類型的預存程序,是在使用者對某一種表的資料進行
UPDATE、INSERT 和 DELETE 操作時被觸發執行的一段程式。觸發器有助於強制引用完
整性,以便在添加、更新或刪除表中的行時保留表之間已定義的關係。

2.觸發器工作原理:

① 觸發器的名稱。
② 觸發器中進行的操作。
③ 觸發器操作的執行過程。

3.建立觸發器:

可以通過 CREATE TRIGGER 語句建立觸發器,其文法格式為:

CREATE TRIGGER trigger_name ON { table | view } [ WITH ENCRYPTION ]{{ { FOR | AFTER | INSTEAD OF } { [ INSERT ] [ , ] [ UPDATE ] } [ WITH APPEND ][ NOT FOR REPLICATION ] AS{batch| IF UPDATE ( column ) [ { AND | OR } UPDATE ( column ) ]}

參數說明如下:

① trigger_name:觸發器的名稱。觸發器名稱必須符合標識符規則,並且在資料庫中
必須唯一,可以選擇是否指定觸發器所有者名稱。
② table | view:在其上執行觸發器的表或視圖,有時稱為觸發器表或觸發器視圖。
③ WITH ENCRYPTION:加密 syscomments 表中包含 CREATE TRIGGER 語句文本的
條目。
④ AFTER:指定觸發器只有在觸發 SQL 陳述式中指定的所有操作都已成功執行後才激
發。如果僅指定 FOR 關鍵字,則 AFTER 是預設設定。不能在視圖上定義 AFTER 觸發器。
⑤ INSTEAD OF:指定執行觸發器而不是執行觸發 SQL 陳述式,從而替代觸發語句的
操作。在表或視圖上,都可以定義一個 INSTEAD OF 觸發器,但不能在 WITH CHECK
OPTION 的可更新視圖上定義。
⑥ { [DELETE] [,] [INSERT] [,] [UPDATE] }:指定在表或視圖上執行哪些語句時將激
活觸發器的關鍵字,必須至少指定一個選項。在觸發器定義中允許使用以任意順序組合的
這些關鍵字。如果指定的選項多於一個,需用逗號分隔這些選項。
⑦ WITH APPEND:指定應該添加現有類型的其他觸發器。只有當相容層級是 65 或
更低時,才需要使用該可選子句。WITH APPEND 不能與 INSTEAD OF 觸發器一起使用;
或者顯式聲明 AFTER 觸發器,也不能使用該子句。
⑧ NOT FOR REPLICATION:當複製進程更改觸發器所涉及的表時,不應執行該觸
發器。
⑨ AS:觸發器要執行的操作。

4.觸發器執行個體:

Create Table Student(          StudentNO int primary key,  --學號            )        Create Table COURSE(           CourseNO int primary key,  --課程號           StudnetID int,            )        使用觸發器,更改學生學號,同步更改學生選課的課程號,        Create Trigger tri_updateStudent        On Student                       --在Studnet中建立觸發器        for Update                       --觸發事件        AS                               --事件觸發後執行的事情        if Update(SudentID)        begin        Update COURSE        Set StudentID=i.StudentID        From COURSE cr,Deleted d,Insert i    --Deleted和Inserted暫存資料表         Where cr.StudentID=d.StudentID

 

 

擴充閱讀:

SQL觸發器執行個體講解:http://www.cnblogs.com/xianqingzh/archive/2009/04/30/1447143.html

DML觸發器:http://msdn.microsoft.com/zh-cn/library/ms178110.aspx

 

SqlServer之觸發器

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.