數據庫中觸發器

觸發器

專注于為中小企業提供成都網站設計、網站建設、外貿網站建設服務,電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業武侯免費做網站提供優質的服務。我們立足成都,凝聚了一批互聯網行業人才,有力地推動了上千多家企業的穩健成長,幫助中小企業通過網站建設實現規模擴充和轉變。

 其是一種特殊的存儲過程。一般的存儲過程是通過存儲過程名直接調用,而觸發器主要是

 通過事件(增、刪、改)進行觸發而被執行的。其在表中數據發生變化時自動強制執行。

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

 after(for)        表示執行代碼后,執行觸發器

 instead of        表示執行代碼前,用已經寫好的觸發器代替你的操作

觸發器語法:

 create trigger 觸發器的名字   on 操作表

 for|after         instead of

 update|insert|delete

 as

 SQL語句

 

觸發器的特征:


1、觸發器是在對表進行增、刪、改時,自動執行的存儲過程。觸發器常用于強制業務規則,它是一種高級約束,通過事件進行觸發而被執行。

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


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

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

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

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

4、所創建的觸發器(insert、delete、update)是在原表數據行已經修改完成后再觸發。所以,觸發器是在約束檢查之后才執行。

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

 

 create trigger tr_insert on bank

 

 for          --for表示執行之后的操作

 

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

 

 as

 

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

 

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

 

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

 

 

 

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

 

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

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

 create trigger tr_dalete on bank

 instead of

 delete

 as

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

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

 

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

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

新聞名稱:數據庫中觸發器
轉載注明:http://m.kartarina.com/article18/piphgp.html

成都網站建設公司_創新互聯,為您提供網站營銷自適應網站網站設計虛擬主機網站內鏈軟件開發

廣告

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

成都定制網站網頁設計
主站蜘蛛池模板: 亚洲AV永久无码天堂影院| 亚洲av无码成人精品区在线播放 | 少妇无码AV无码专区线| 国产在线拍揄自揄拍无码视频| 无码尹人久久相蕉无码| 亚洲成?v人片天堂网无码| 久久国产精品无码HDAV| 日韩成人无码影院| 精品亚洲AV无码一区二区三区| 精品亚洲成α人无码成α在线观看| 无码国产精品一区二区免费式影视| 久久亚洲av无码精品浪潮| 亚洲中文字幕久久精品无码VA| 精品无码国产一区二区三区麻豆| 无码国产午夜福利片在线观看| 亚洲av永久无码一区二区三区| 国产精品99久久久精品无码| 精品无码久久久久久国产| 亚洲AV人无码激艳猛片| 国产成人无码专区| 人妻丰满熟妇AV无码区| 无码人妻品一区二区三区精99| 波多野结AV衣东京热无码专区| 日韩精品人妻系列无码av东京| 99久久人妻无码精品系列蜜桃| 无码专区—VA亚洲V天堂| 狠狠爱无码一区二区三区| 国产精品无码制服丝袜| 无码精油按摩潮喷在播放| 亚洲AV无码国产一区二区三区| 无码八A片人妻少妇久久| 人妻丝袜中文无码av影音先锋专区| 永久免费AV无码网站国产| 中文字幕无码第1页| 深夜a级毛片免费无码| 人妻无码中文字幕| 97无码人妻福利免费公开在线视频| julia无码人妻中文字幕在线| 国产成人无码A区在线观看导航| 亚洲熟妇无码久久精品| 国产综合无码一区二区辣椒|