- 相關(guān)推薦
2015下半年計算機四級數據庫考試知識點(diǎn):觸發(fā)器
觸發(fā)器基本概念

1、 觸發(fā)器是一種特殊的存儲過(guò)程,其特殊性在于它不需要由用戶(hù)來(lái)調用,而是當用戶(hù)對表中的數據進(jìn)行UPDATE、INSERT或DELETE操作時(shí)自動(dòng)觸發(fā)執行;
2、 觸發(fā)器常用于下列場(chǎng)合:
(1) 完成比CHECK的約束更復雜的數據約束;
(2) 為保證數據庫性能而維護的非規范化數據;
(3) 實(shí)現復雜的業(yè)務(wù)規則,可使業(yè)務(wù)的處理任務(wù)自動(dòng)進(jìn)行。
創(chuàng )建觸發(fā)器
1、 創(chuàng )建觸發(fā)器的語(yǔ)句:CREATE TRIGGER,語(yǔ)法為:
CREATE TRIGGER 觸發(fā)器名稱(chēng)
ON {表名| 視圖名}
[WITH ENCRYPTION]
{FOR |AFTER|INSTEAD OF}{[INSERT][,][DELETE][,][UPDATE]}
AS
[{IF UPDATE(column)…}]
SQL語(yǔ)句
(1) 觸發(fā)器名稱(chēng)在數據庫中必須是惟一的;
(2) ON子句用于指定在其上執行觸發(fā)器的表;
(3) AFTER:指定觸發(fā)器只有在引發(fā)的SQL語(yǔ)句中指定的操作都已成功執行,并且所有的約束檢查也成功完成后,才執行此觸發(fā)器,這種觸發(fā)器稱(chēng)為后觸發(fā)型觸發(fā)器;
(4) FOR:作用同AFTER;
(5) INSTEAD OF:指定執行觸發(fā)器而不是執行引發(fā)觸發(fā)器執行的SQL語(yǔ)句,從而替代觸發(fā)語(yǔ)句的操作,這種觸發(fā)器稱(chēng)為前觸發(fā)型觸發(fā)器;
(6) INSTERT、DELETE或UPDATE是引發(fā)觸發(fā)器執行的操作,若同時(shí)指定多個(gè)操作,則各操作之間用逗號分隔;
2、 創(chuàng )建觸發(fā)器時(shí),需要注意:
(1) 在一個(gè)表上可以建立多個(gè)名稱(chēng)不同、類(lèi)型各異的觸發(fā)器,每個(gè)觸發(fā)器可由三個(gè)操作引發(fā);
(2) 大部分Transact-SQL語(yǔ)句都可用在觸發(fā)器中,但也有一些限制;
(3) 在觸發(fā)器定義中,可以使用IF UPDATE子句測試在INSERT和UPDATE語(yǔ)句中是否對指定字段有影響;
(4) 通常不要在觸發(fā)器中返回任何結果。
3、 創(chuàng )建后觸發(fā)型觸發(fā)器
使用FOR或AFTER選項定義的觸發(fā)器為后觸發(fā)的觸發(fā)器,即只有在引發(fā)觸發(fā)器執行語(yǔ)句中指定的操作都已完成執行,并且所有的約束檢查也成功完成后,才執行的觸發(fā)器;
4、 創(chuàng )建前觸發(fā)型觸發(fā)器
使用INSTEAD OF 選項定義的觸發(fā)器為前觸發(fā)型觸發(fā)器,在該觸發(fā)器中,指定執行觸發(fā)器而不是執行引發(fā)觸發(fā)器執行的SQL語(yǔ)句,從而替代引發(fā)語(yǔ)句的操作。
【下半年計算機四級數據庫考試知識點(diǎn):觸發(fā)器】相關(guān)文章:
2015下半年計算機四級數據庫考試知識點(diǎn):存儲過(guò)程05-22
計算機四級考試《數據庫工程師》知識點(diǎn):DBAS07-22
2015下半年計算機四級數據庫考試知識點(diǎn):查看、修改及刪除對象03-19
計算機四級考試大綱:數據庫原理04-12
2015下半年計算機四級數據庫考試知識點(diǎn):創(chuàng )建和執行存儲過(guò)程03-04
2022下半年計算機四級數據庫考試知識點(diǎn):用戶(hù)自定義函數06-04