欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

數(shù)據(jù)庫中觸發(fā)器

觸發(fā)器

專注于為中小企業(yè)提供成都網(wǎng)站設(shè)計、網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)武侯免費做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了上千多家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。

 其是一種特殊的存儲過程。一般的存儲過程是通過存儲過程名直接調(diào)用,而觸發(fā)器主要是

 通過事件(增、刪、改)進(jìn)行觸發(fā)而被執(zhí)行的。其在表中數(shù)據(jù)發(fā)生變化時自動強(qiáng)制執(zhí)行。

 常見的觸發(fā)器有兩種:after(for)、instead of,用于insert、update、delete事件。

 after(for)        表示執(zhí)行代碼后,執(zhí)行觸發(fā)器

 instead of        表示執(zhí)行代碼前,用已經(jīng)寫好的觸發(fā)器代替你的操作

觸發(fā)器語法:

 create trigger 觸發(fā)器的名字   on 操作表

 for|after         instead of

 update|insert|delete

 as

 SQL語句

 

觸發(fā)器的特征:


1、觸發(fā)器是在對表進(jìn)行增、刪、改時,自動執(zhí)行的存儲過程。觸發(fā)器常用于強(qiáng)制業(yè)務(wù)規(guī)則,它是一種高級約束,通過事件進(jìn)行觸發(fā)而被執(zhí)行。

2、觸發(fā)器是一個特殊的事務(wù)單元,可以引用其他表中的列執(zhí)行特殊的業(yè)務(wù)規(guī)則或數(shù)據(jù)邏輯關(guān)系。當(dāng)出現(xiàn)錯誤時,可以執(zhí)行rollback transaction操作將整個觸發(fā)器以及觸發(fā)它的T-SQL語句一并回滾(不需顯示聲明begin transaction)。


3、每個觸發(fā)器將用到的兩個臨時表:

   deleted 臨時表:用于臨時存放被刪除的記錄行副本(包括delete和update語句所影響的數(shù)據(jù)行);
    注意:被刪除的記錄行,首先從原始表中刪除,并保存到觸發(fā)器表。然后從觸發(fā)器表中刪除,再保存到deleted表。

   inserted臨時表:用于臨時存放插入的記錄行副本(包括insert和update語句所影響的數(shù)據(jù)行);

    deleted表和inserted表的特征:
    > 這兩個表的表結(jié)構(gòu)與該觸發(fā)器作用的表相同;
    > 這兩個表是邏輯表,并且由系統(tǒng)管理;
    > 這兩個表是動態(tài)駐留在內(nèi)存中的(不是存儲在數(shù)據(jù)庫中),當(dāng)觸發(fā)器工作完成后,它們也被刪除;
    > 這兩個表是只讀的,即只能運用select語句查看(用戶不能直接更改);

4、所創(chuàng)建的觸發(fā)器(insert、delete、update)是在原表數(shù)據(jù)行已經(jīng)修改完成后再觸發(fā)。所以,觸發(fā)器是在約束檢查之后才執(zhí)行。

--禁止用戶插入數(shù)據(jù)(實際上是先插入,然后立刻將其刪除!)

 

 create trigger tr_insert on bank

 

 for          --for表示執(zhí)行之后的操作

 

 insert       --即先執(zhí)行了插入操作,同時在臨時表中保存了插入記錄

 

 as

 

   --執(zhí)行完插入之后,在新生成的表中將剛剛插入的那條記錄刪除,

 

  --而此時得到的剛剛插入的記錄的id是通過臨時表 inserted得到的

 

 delete * from bank where cid=(select cid from inserted)

 

 

 

 生成上面的觸發(fā)器后,當(dāng)用戶再輸入insert語句后就見不到效果了!

 

 如:insert into bank values('0004',10000),是插入不進(jìn)數(shù)據(jù)庫的。

--刪除誰就讓誰的賬戶加上10元

 create trigger tr_dalete on bank

 instead of

 delete

 as

 update bank balance=balance+10 where cid=(select cid from deleted)

 生成這個觸發(fā)器之后,當(dāng)用戶輸入delete語句后,對應(yīng)的那個id不但沒有被刪除掉,而且他的賬戶增加了10元

 

 如:delete from bank where cid='0002',執(zhí)行完這句話后,編號為0002的賬戶會增加10元

參考文章:http://www.cnblogs.com/xugang/archive/2010/02/20/1669619.html

新聞名稱:數(shù)據(jù)庫中觸發(fā)器
轉(zhuǎn)載注明:http://chinadenli.net/article18/piphgp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營銷自適應(yīng)網(wǎng)站、網(wǎng)站設(shè)計、虛擬主機(jī)網(wǎng)站內(nèi)鏈、軟件開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁設(shè)計