13.3.2 創(chuàng)建觸發(fā)器
1、 創(chuàng)建觸發(fā)器的語(yǔ)句:CREATE TRIGGER,語(yǔ)法為:
CREATE TRIGGER 觸發(fā)器名稱
ON {表名| 視圖名}
[WITH ENCRYPTION]
{FOR |AFTER|INSTEAD OF}{[INSERT][,][DELETE][,][UPDATE]}
AS
[{IF UPDATE(column)…}]
SQL語(yǔ)句
(1) 觸發(fā)器名稱在數(shù)據(jù)庫(kù)中必須是惟一的;
(2) ON子句用于指定在其上執(zhí)行觸發(fā)器的表;
(3) AFTER:指定觸發(fā)器只有在引發(fā)的SQL語(yǔ)句中指定的操作都已成功執(zhí)行,并且所有的約束檢查也成功完成后,才執(zhí)行此觸發(fā)器,這種觸發(fā)器稱為后觸發(fā)型觸發(fā)器;
(4) FOR:作用同AFTER;
(5) INSTEAD OF:指定執(zhí)行觸發(fā)器而不是執(zhí)行引發(fā)觸發(fā)器執(zhí)行的SQL語(yǔ)句,從而替代觸發(fā)語(yǔ)句的操作,這種觸發(fā)器稱為前觸發(fā)型觸發(fā)器;
(6) INSTERT、DELETE或UPDATE是引發(fā)觸發(fā)器執(zhí)行的操作,若同時(shí)指定多個(gè)操作,則各操作之間用逗號(hào)分隔;
2、 創(chuàng)建觸發(fā)器時(shí),需要注意:
(1) 在一個(gè)表上可以建立多個(gè)名稱不同、類型各異的觸發(fā)器,每個(gè)觸發(fā)器可由三個(gè)操作引發(fā);
(2) 大部分Transact-SQL語(yǔ)句都可用在觸發(fā)器中,但也有一些限制;
(3) 在觸發(fā)器定義中,可以使用IF UPDATE子句測(cè)試在INSERT和UPDATE語(yǔ)句中是否對(duì)指定字段有影響;
(4) 通常不要在觸發(fā)器中返回任何結(jié)果。
3、 創(chuàng)建后觸發(fā)型觸發(fā)器
使用FOR或AFTER選項(xiàng)定義的觸發(fā)器為后觸發(fā)的觸發(fā)器,即只有在引發(fā)觸發(fā)器執(zhí)行語(yǔ)句中指定的操作都已完成執(zhí)行,并且所有的約束檢查也成功完成后,才執(zhí)行的觸發(fā)器;
4、 創(chuàng)建前觸發(fā)型觸發(fā)器
使用INSTEAD OF 選項(xiàng)定義的觸發(fā)器為前觸發(fā)型觸發(fā)器,在該觸發(fā)器中,指定執(zhí)行觸發(fā)器而不是執(zhí)行引發(fā)觸發(fā)器執(zhí)行的SQL語(yǔ)句,從而替代引發(fā)語(yǔ)句的操作。
13.4 查看、修改及刪除對(duì)象
13.4.1 查看對(duì)象
對(duì)于創(chuàng)建好的存儲(chǔ)過(guò)程、函數(shù)可通過(guò)企業(yè)管理器和查詢分析器查看這些對(duì)象的代碼;
13.4.2 修改對(duì)象
1、 修改存儲(chǔ)過(guò)程:ALTER PROCEDURE
ALTER PROC 存儲(chǔ)過(guò)程名
[{@參數(shù)名 數(shù)據(jù)類型}[=default][OUTPUT]][,…n]
AS
SQL語(yǔ)句[…n]
修改與定義的語(yǔ)句基本一致,只將CREARE PROC 改成ALTER PROC;
2、修改用戶自定義函數(shù):
修改與定義的語(yǔ)句基本一致,只將CREARE FUNCTION 改成ALTER FUNCTION;
3、修改觸發(fā)器:
修改與定義的語(yǔ)句基本一致,只將CREARE TRIGGER 改成ALTER TRIGGER;
13.4.3 刪除對(duì)象
1、 刪除存儲(chǔ)過(guò)程:
DROP PROCEDURE {存儲(chǔ)過(guò)程名}[,…n];
2、刪除用戶自定義函數(shù)
DROP FUNCTION {[擁有者名.]函數(shù)名}[,…n]
3、刪除觸發(fā)器
DROP TRIGGER {觸發(fā)器名}[,…n]
相關(guān)推薦:2010年9月計(jì)算機(jī)等級(jí)考試試題及答案解析專題預(yù)告:名師解析2010年9月計(jì)算機(jī)等級(jí)考試試題答案
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |