亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

數據庫中觸發器

發布時間:2020-04-28 12:18:30 來源:網絡 閱讀:327 作者:小止1995 欄目:數據庫

觸發器

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

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

  常見的觸發器有兩種: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

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

香河县| 庄河市| 南部县| 朝阳区| 丰镇市| 招远市| 抚顺县| 高尔夫| 盐津县| 广丰县| 辽宁省| 会东县| 如东县| 镇原县| 沁阳市| 恭城| 泉州市| 施甸县| 连城县| 冷水江市| 丰原市| 高清| 新民市| 蚌埠市| 博兴县| 张家界市| 兴业县| 汝南县| 桂阳县| 广丰县| 潜山县| 朝阳市| 霍城县| 石阡县| 张家港市| 宜丰县| 故城县| 五华县| 内乡县| 麦盖提县| 东兰县|