日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

sql 触发器的常用语句(转)

發(fā)布時(shí)間:2024/4/14 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 sql 触发器的常用语句(转) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(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è)表。

一﹕ 觸發(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)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。