sql 触发器的常用语句(转)
一﹕ 觸發(fā)器是一種特殊的存儲(chǔ)過(guò)程﹐它不能被顯式地調(diào)用﹐而是在往表中插入記錄﹑更新記錄或者刪除記錄時(shí)被自動(dòng)地激活。所以觸發(fā)器可以用來(lái)實(shí)現(xiàn)對(duì)表實(shí)施復(fù)雜的完整性約`束。
二﹕ SQL Server為每個(gè)觸發(fā)器都創(chuàng)建了兩個(gè)專用表﹕Inserted表和Deleted表。這兩個(gè)表。
一﹕ 觸發(fā)器是一種特殊的存儲(chǔ)過(guò)程﹐它不能被顯式地調(diào)用﹐而是在往表中插入記錄﹑更新記錄或者刪除記錄時(shí)被自動(dòng)地激活。所以觸發(fā)器可以用來(lái)實(shí)現(xiàn)對(duì)表實(shí)施復(fù)雜的完整性約`束。
????????
二﹕ SQL Server為每個(gè)觸發(fā)器都創(chuàng)建了兩個(gè)專用表﹕Inserted表和Deleted表。這兩個(gè)表由系統(tǒng)來(lái)維護(hù)﹐它們存在于內(nèi)存中而不是在數(shù)據(jù)庫(kù)中。這兩個(gè)表的結(jié)構(gòu)總是與被該觸發(fā)器作用的表的結(jié)構(gòu)相同。觸發(fā)器執(zhí)行 完成后﹐與該觸發(fā)器相關(guān)的這兩個(gè)表也被刪除。
Deleted表存放由于執(zhí)行Delete或Update語(yǔ)句而要從表中刪除的所有行。
Inserted表存放由于執(zhí)行Insert或Update語(yǔ)句而要向表中插入的所有行。
三﹕Instead of 和 After觸發(fā)器
SQL Server2000提供了兩種觸發(fā)器﹕Instead of 和After 觸發(fā)器。這兩種觸發(fā)器的差別在于他們被激活的同﹕
???????
Instead of觸發(fā)器用于替代引起觸發(fā)器執(zhí)行的T-SQL語(yǔ)句。除表之外﹐Instead of 觸發(fā)器也可以用于視圖﹐用來(lái)擴(kuò)展視圖可以支持的更新操作。
???????
After觸發(fā)器在一個(gè)Insert,Update或Deleted語(yǔ)句之后執(zhí)行﹐進(jìn)行約束檢查等動(dòng)作都在After觸發(fā)器被激活之前發(fā)生。After觸發(fā)器只能用于表。
???????
一個(gè)表或視圖的每一個(gè)修改動(dòng)作(insert,update和delete)都可以有一個(gè)instead of 觸發(fā)器﹐一個(gè)表的每個(gè)修改動(dòng)作都可以有多個(gè)After觸發(fā)器。
四﹕觸發(fā)器的執(zhí)行過(guò)程
如果一個(gè)Insert﹑update或者delete語(yǔ)句違反了約束﹐那幺After觸發(fā)器不會(huì)執(zhí)行﹐因?yàn)閷?duì)約束的檢查是在After觸發(fā)器被激動(dòng)之前發(fā)生的。所以After觸發(fā)器不能超越約束。
??????
Instead of 觸發(fā)器可以取代激發(fā)它的操作來(lái)執(zhí)行。它在Inserted表和Deleted表剛剛建立﹐其它任何操作還沒(méi)有發(fā)生時(shí)被執(zhí)行。因?yàn)镮nstead of 觸發(fā)器在約束之前執(zhí)行﹐所以它可以對(duì)約束進(jìn)行一些預(yù)處理。
???????
五﹕使用T-SQL語(yǔ)句來(lái)創(chuàng)建觸發(fā)器
基本語(yǔ)句如下﹕???????
?????????? create trigger trigger_name
?????????? on {table_name | view_name}
?????????? {for | After | Instead of }
?????????? [ insert, update,delete ]
?????????? as
?????????? sql_statement
六﹕刪除觸發(fā)器:
基本語(yǔ)句如下﹕
???? drop trigger trigger_name
七:查看數(shù)據(jù)庫(kù)中已有觸發(fā)器:
-- 查看數(shù)據(jù)庫(kù)已有觸發(fā)器
use jxcSoftware
go
select * from sysobjects where xtype='TR'
-- 查看單個(gè)觸發(fā)器
exec sp_helptext '觸發(fā)器名'
轉(zhuǎn)載于:https://www.cnblogs.com/joker-xp/p/3154349.html
總結(jié)
以上是生活随笔為你收集整理的sql 触发器的常用语句(转)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 三星的高效会议原则
- 下一篇: android jni ndk 视频分享