首先說一觸發器的的功能
1.強化約束。觸發器能夠實現比Check語句更復雜的約束
2.跟蹤變化。觸發器可以偵測數據庫內的操作,從而不允許數據庫中不經過許可的指定更新和變化。
3..級聯操作。根據一個表的編花,其他的表也可以設置產生相應的變化
4.存儲過程的調用。爲了響應數據庫的更新,觸發器可以調用一個和多個存儲過程,也可以通過外部過程的調用在數據庫管理系統之外進行操作。
再之說一下激活觸發器s數據庫建立和管理的兩個臨時的虛擬表。即Delete表與Insert表
Delete表和Insert表在執行觸發程序的情況
T-SQL語句 |
Insert表 |
Delete表 |
Insert |
新的行 |
空 |
Update |
剛更新過後的行 |
原先的行 |
Delete |
空 |
剛被刪除的行 |
接着 講一下instead of 與for的區別
instead of用在觸發語句之前
for用在觸發語句之後
最後寫一個禁止刪除數據表的內容的觸發器
create trigger tr_test
on Score instead of delete
as
begin
rollback;--禁止刪除數據
end