九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
觸發(fā)器(Trigger)(三)

 設(shè)計(jì)DML觸發(fā)器的注意事項(xiàng)及技巧

在了解觸發(fā)器的種類和工作理由之后,現(xiàn)在可以開始動(dòng)手來(lái)設(shè)計(jì)觸發(fā)器了,不過(guò)在動(dòng)手之前,還有一些注意事項(xiàng)必須先了解一下:

 設(shè)計(jì)觸發(fā)器的限制

在觸發(fā)器中,有一些SQL語(yǔ)句是不能使用的,這些語(yǔ)句包括:

DML觸發(fā)器中不能使用的語(yǔ)句

不能使用的語(yǔ)句

語(yǔ)句功能

Alter Database

修改數(shù)據(jù)庫(kù)

Create Database

新建數(shù)據(jù)庫(kù)

Drop Database

刪除數(shù)據(jù)庫(kù)

Load Database

導(dǎo)入數(shù)據(jù)庫(kù)

Load Log

導(dǎo)入日志

Reconfigure

更新配置選項(xiàng)

Restore Database

還原數(shù)據(jù)庫(kù)

Restore Log

還原數(shù)據(jù)庫(kù)日志

另外,在對(duì)作為觸發(fā)操作的目標(biāo)的表或視圖使用了下面的SQL語(yǔ)句時(shí),不允許在DML觸發(fā)器里再使用這些語(yǔ)句:

2 在目標(biāo)表中使用過(guò)的,DML觸發(fā)器不能再使用的語(yǔ)句

不能使用的語(yǔ)句

語(yǔ)句功能

Create Index

建立索引

Alter Index

修改索引

Drop Index

刪除索引

DBCC Dbreindex

重新生成索引

Alter Partition Function

通過(guò)拆分或合并邊界值更改分區(qū)

Drop Table

刪除數(shù)據(jù)表

Alter Table

修改數(shù)據(jù)表結(jié)構(gòu)

  如何在觸發(fā)器取得字段修改前和修改后的數(shù)據(jù)

上面介紹過(guò),SQL Server 2005在為每個(gè)觸發(fā)器都定義了兩個(gè)虛擬表,一個(gè)是插入表(inserted),一個(gè)是刪除表(deleted),現(xiàn)在把這兩個(gè)表存放的數(shù)據(jù)列表說(shuō)明一下:

11.3  插入/刪除表的功能

激活觸發(fā)器的動(dòng)作

Inserted

Deleted

Insert

存放要插入的記錄

 

Update

存放要更新的記錄

存放更新前的舊記錄

Delete

 

存放要?jiǎng)h除的舊記錄

以上面刪除庫(kù)存產(chǎn)品記錄為例,在刪除時(shí)觸發(fā)器要判斷庫(kù)存數(shù)量是否為零,那么判斷就應(yīng)該這么寫:

If (Select 庫(kù)存數(shù)量 From Deleted)>0

Begin

Print ‘庫(kù)存數(shù)量大于零時(shí)不能刪除此記錄

Rollback Transaction

End

  其他注意事項(xiàng)

l  After觸發(fā)器只能用于數(shù)據(jù)表中,Instead Of觸發(fā)器可以用于數(shù)據(jù)表和視圖上,但兩種觸發(fā)器都不可以建立在臨時(shí)表上。

一個(gè)數(shù)據(jù)表可以有多個(gè)觸發(fā)器,但是一個(gè)觸發(fā)器只能對(duì)應(yīng)一個(gè)表。

在同一個(gè)數(shù)據(jù)表中,對(duì)每個(gè)操作(如Insert、Update、Delete)而言可以建立許多個(gè)After觸發(fā)器,但Instead Of觸發(fā)器針對(duì)每個(gè)操作只有建立一個(gè)。

如果針對(duì)某個(gè)操作即設(shè)置了After觸發(fā)器又設(shè)置了Instead Of觸發(fā)器,那么Instead of觸發(fā)器一定會(huì)激活,而After觸發(fā)器就不一定會(huì)激活了。

l  Truncate Table語(yǔ)句雖然類似于Delete語(yǔ)句可以刪除記錄,但是它不能激活Delete類型的觸發(fā)器。因?yàn)?/span>Truncate Table語(yǔ)句是不記入日志的。

l  WRITETEXT語(yǔ)句不能觸發(fā)InsertUpdate型的觸發(fā)器。

不同的SQL語(yǔ)句,可以觸發(fā)同一個(gè)觸發(fā)器,如InsertUpdate語(yǔ)句都可以激活同一個(gè)觸發(fā)器。

  
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
sql server 2005學(xué)習(xí)筆記之觸發(fā)器簡(jiǎn)介 - 一個(gè)世界一個(gè)家,我愛中國(guó)! - C...
SQL菜鳥入門級(jí)教程之觸發(fā)器
數(shù)據(jù)庫(kù)觸發(fā)器應(yīng)用
觸發(fā)器基礎(chǔ)知識(shí)
oracle 觸發(fā)器的種類和觸發(fā)事件,DML觸發(fā)器,DDL事件觸發(fā)器,替代觸發(fā)器,查看觸發(fā)...
ORACLE PL/SQL編程之八:把觸發(fā)器說(shuō)透
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服