觸發器
觸發器簡介:
觸發器(trigger)是個特殊的儲存過程,它的執行不是由程式調用,也不是手動啟動,而是由事件來觸發 對一個特殊的儲存程序,當一個執行表,delete, update)時就會啟動它執行,觸發器經常用於加強資料的完整性約束和業務規則等。在我看來觸發器實際上就是一個事件,就像C#中,點擊一個按鈕會觸發對應的操作。
觸發器的分類:
(1)DML( 資料操縱語言 Data Manipulation Language)觸發器:是指觸發器在資料庫中發生DML事件時將啟用DML事件時將啟用。 DML事件即指在資料表或檢視中修改資料的insert、update、delete語句。
(2)DDL(資料定義語言Data Definition Language)觸發器:是指當伺服器或資料庫中發生(DDL事件時將啟用。DDL事件即指在表或索引中的create、alter、drop語句也。
語句也。 (3)登陸觸發器:是指當使用者登入SQL SERVER實例建立會話時觸發。 )AFTER觸發器:它是在執行INSERT、UPDATE、DELETE語句操作之後執行觸發器操作。 ,不過不能對視圖定義AFTER觸發器。的。 DELETED和INSERED表的結構和觸發器所在的資料表的結構是一樣的。 ,更新的記錄。的表中有三條數據,那麼他也有三個數據。的優缺點:
語法
建立觸發器
CREATE TRIGGER 触发器名称 ON 表名 { FOR | AFTER | INSTEAD OF } { [ INSERT ] [ , ] [ DELETE ] [ , ] [UPDATE ] } AS SQL 语句 [ ... n ]
刪除觸發器:
DROP TRIGGER 触发器名 [ , ... n ]
修改觸發reee
範例ALTER TRIGGER 触发器名称 ON 表名 { FOR | AFTER | INSTEAD OF } { [ INSERT ] [ , ] [ DELETE ] [ , ] [UPDATE ] } AS SQL 语句 [ ... n ]
disable trigger trigDB on database --禁用触发器 enable trigger trigDB on database --开启触发器
print '删除了触发器***' raiserror('数据一致性验证',16,1) rollback transaction