中文国产日韩欧美视频,午夜精品999,色综合天天综合网国产成人网,色综合视频一区二区观看,国产高清在线精品,伊人色播,色综合久久天天综合观看

什么是觸發(fā)器 -電腦資料

電腦資料 時(shí)間:2019-01-01 我要投稿
【m.szmdbiao.com - 電腦資料】

觸發(fā)器是一種用來(lái)保障參照完整性的特殊的存儲(chǔ)過(guò)程,它維護(hù)不同表中數(shù)據(jù)間關(guān)系的有關(guān)規(guī)則,

什么是觸發(fā)器

。當(dāng)對(duì)指定的表進(jìn)行某種特定操作(如:Insert,Delete或Update)時(shí),觸發(fā)器產(chǎn)生作用。觸發(fā)器可以調(diào)用存儲(chǔ)過(guò)程。

創(chuàng)建觸發(fā)器的語(yǔ)法:

Create Trigger[owner.]觸發(fā)器名

On [owner.]表名

For {insert,update,delete}

As

Begin

SQL語(yǔ)句(塊)

End

定義一個(gè)好的觸發(fā)器對(duì)簡(jiǎn)化數(shù)據(jù)的管理,保證數(shù)據(jù)庫(kù)的安全都有重要的影響。觸發(fā)器是針對(duì)表一級(jí)的,這就意味著,只有表的所有者有權(quán)創(chuàng)建表的觸發(fā)器。

舉例:

插入一個(gè)新行,必須保證外鍵與主鍵相匹配,觸發(fā)器應(yīng)該首先檢查 入行與主鍵表的連接。

以下的觸發(fā)器對(duì)inserted表和titles表的title_id進(jìn)行比較,這里假設(shè)正在給外鍵輸入數(shù)據(jù),沒(méi)有插入空值,若連接失敗,事務(wù)被回退。insert,update,delete

Create trigger forinsertrigl

On salesdetail

For insert

As

If(select count(*)

From title,inserted

Where titles.title_id=inserted.title_id)!=@@rowcount

Begin

Rollback transaction

Print “No,some title_id does not exist in titles.”

End

Else

Print “Added! All the title_id is exist in titles.”

在本例中,@@rowcount代表添加到salesdetail表的行數(shù),這也是添加到inserted表中的行數(shù),

電腦資料

什么是觸發(fā)器》(http://m.szmdbiao.com)。通過(guò)連接表titles和表inserted來(lái)檢測(cè)所有添加到salesdetail的title_id是否在titles中存在。若所連接的行數(shù)(count(*))與@@rowcount不同,由有一個(gè)或多個(gè)插入不正確,整個(gè)事務(wù)被取消。

觸發(fā)器的限制:

●一個(gè)表最多只能有三個(gè)觸發(fā)器,insert,update,delete

●每個(gè)觸發(fā)器只能用于一個(gè)表

●不能對(duì)視圖、臨時(shí)表創(chuàng)建觸發(fā)器

●Truncate table能刪除表,但不能觸發(fā)觸發(fā)器

●不能將觸發(fā)器用于系統(tǒng)表

合理地使用觸發(fā)器對(duì)性能的影響是正面的。在設(shè)計(jì)和使用觸發(fā)器時(shí),經(jīng)常地用sp_depends命令了解對(duì)象所關(guān)聯(lián)的觸發(fā)器是有好處的,該命令能列出觸發(fā)器影響的所有對(duì)象、表和視等。

在定義幾類數(shù)據(jù)庫(kù)對(duì)象的時(shí)候,對(duì)存儲(chǔ)過(guò)程、索引和觸發(fā)器要給予特別的注意,尤其存儲(chǔ)過(guò)程,它設(shè)計(jì)的好壞對(duì)數(shù)據(jù)庫(kù)性能的影響很大。

說(shuō)明:Sybase觸發(fā)器使用的兩個(gè)測(cè)試表:Deleted表和Inserted表,它們都是臨時(shí)表,其結(jié)構(gòu)與觸發(fā)器的基表結(jié)構(gòu)相同,用來(lái)存放與修改相關(guān)的數(shù)據(jù)行。

最新文章