SQL SERVER中觸發(fā)器的觸發(fā)類(lèi)型有三種。

創(chuàng)新互聯(lián)專(zhuān)注為客戶(hù)提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于做網(wǎng)站、成都網(wǎng)站制作、渦陽(yáng)網(wǎng)絡(luò)推廣、重慶小程序開(kāi)發(fā)、渦陽(yáng)網(wǎng)絡(luò)營(yíng)銷(xiāo)、渦陽(yáng)企業(yè)策劃、渦陽(yáng)品牌公關(guān)、搜索引擎seo、人物專(zhuān)訪(fǎng)、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠(chéng)為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);創(chuàng)新互聯(lián)為所有大學(xué)生創(chuàng)業(yè)者提供渦陽(yáng)建站搭建服務(wù),24小時(shí)服務(wù)熱線(xiàn):18980820575,官方網(wǎng)址:chinadenli.net
1、DML觸發(fā)器,當(dāng)數(shù)據(jù)庫(kù)中表中的數(shù)據(jù)發(fā)生變化時(shí),包括insert,update,delete任意操作,如果對(duì)該表寫(xiě)了對(duì)應(yīng)的DML觸發(fā)器,那么該觸發(fā)器自動(dòng)執(zhí)行。
2、DDL觸發(fā)器,是Sql Server2005新增的觸發(fā)器,主要用于審核與規(guī)范對(duì)數(shù)據(jù)庫(kù)中表,觸發(fā)器,視圖等結(jié)構(gòu)上的操作。比如在修改表,修改列,新增表,新增列等。它在數(shù)據(jù)庫(kù)結(jié)構(gòu)發(fā)生變化時(shí)執(zhí)行,主要用它來(lái)記錄數(shù)據(jù)庫(kù)的修改過(guò)程,以及限制程序員對(duì)數(shù)據(jù)庫(kù)的修改。
3、登錄觸發(fā)器,登錄觸發(fā)器將為響應(yīng) LOGIN 事件而激發(fā)存儲(chǔ)過(guò)程。與 SQL Server 實(shí)例建立用戶(hù)會(huì)話(huà)時(shí)將引發(fā)此事件。登錄觸發(fā)器將在登錄的身份驗(yàn)證階段完成之后且用戶(hù)會(huì)話(huà)實(shí)際建立之前激發(fā)。
擴(kuò)展資料:
DML觸發(fā)器的主要作用在于強(qiáng)制執(zhí)行業(yè) 務(wù)規(guī)則,以及擴(kuò)展Sql Server約束,默認(rèn)值等。因?yàn)槲覀冎兰s束只能約束同一個(gè)表中的數(shù)據(jù),而觸發(fā)器中則可以執(zhí)行任意Sql命令。
來(lái)自登錄觸發(fā)器內(nèi)部且通常將到達(dá)用戶(hù)的所有消息(例如錯(cuò)誤消息和來(lái)自 PRINT 語(yǔ)句的消息)會(huì)傳送到 SQL Server 錯(cuò)誤日志。如果身份驗(yàn)證失敗,將不激發(fā)登錄觸發(fā)器。
觸發(fā)器可在寫(xiě)入數(shù)據(jù)表前,強(qiáng)制檢驗(yàn)或轉(zhuǎn)換數(shù)據(jù)。觸發(fā)器發(fā)生錯(cuò)誤時(shí),異動(dòng)的結(jié)果會(huì)被撤銷(xiāo)。可依照特定的情況,替換異動(dòng)的指令 (INSTEAD OF)。
for 觸發(fā)器,執(zhí)行后觸發(fā)器
也可以寫(xiě)成:for after 只不過(guò)after可寫(xiě)可不寫(xiě),一般省略掉了
在用戶(hù)執(zhí)行數(shù)據(jù)操作之后,觸發(fā)器觸發(fā),執(zhí)行觸發(fā)器代碼
如:
表A(ID,age,level)
如果更新age那么level始終是age的兩倍
代碼如下:
create trigger upAge
on 表A
for update
if update(age)
update 表A set level=a.age*2
from inserted as a where a.ID=表A.ID
還有instead of 執(zhí)行前觸發(fā)器
在用戶(hù)執(zhí)行數(shù)據(jù)操作數(shù)據(jù)之前,觸發(fā)器觸發(fā),執(zhí)行觸發(fā)器代碼,不執(zhí)行用戶(hù)的操作
根據(jù)這個(gè)特性,instead of 觸發(fā)器可以為視圖添加數(shù)據(jù)操作的功能
如:
表:
表1(ID,NAME) 表2(ID,DATE)
視圖 :
DATA(表1.ID,表1.NAME,表2.DATE)
為DATA視圖添加insert操作:代碼如下
create triger trgName
on DATA
instead of insert
as
begin
insert into 表1 select ID,NAME from inserted
insert into 表2 select ID,DATE from inserted
end
前觸發(fā)器:指在執(zhí)行INSERT,UPDATE,DELETE之前去觸發(fā)【觸發(fā)器】要執(zhí)行的語(yǔ)句
后觸發(fā)器:指在執(zhí)行INSERT,UPDATE,DELETE之后再去觸發(fā)【觸發(fā)器】要執(zhí)行的語(yǔ)句。
比如一個(gè)update觸發(fā)器,要執(zhí)行刪除操作。
那么有兩種情況,第一先update在delete(后觸發(fā)器)
第二先delete在update(前觸發(fā)器)
當(dāng)前題目:sqlserver前觸發(fā),sql觸發(fā)事件
文章源于:http://chinadenli.net/article46/dsepphg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App設(shè)計(jì)、網(wǎng)站收錄、品牌網(wǎng)站制作、電子商務(wù)、Google、外貿(mào)建站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)