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

打開APP
userphoto
未登錄

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

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

觸發(fā)器的嵌套

當(dāng)一個(gè)觸發(fā)器執(zhí)行時(shí),能夠觸活另一個(gè)觸發(fā)器,這種情況就是觸發(fā)器的嵌套。在SQL Server 2005里,觸發(fā)器能夠嵌套到32層。

如果不想對(duì)觸發(fā)器進(jìn)行嵌套的話,可以通過【允許觸發(fā)器激活其他觸發(fā)器】的服務(wù)器配置選項(xiàng)來控制。但不管此設(shè)置是什么,都可以嵌套Instead Of觸發(fā)器。設(shè)置觸發(fā)器嵌套的選項(xiàng)更改方法為:

1)打開Management Studio,在【對(duì)象資源管理】中,右擊服務(wù)器名,并選擇【屬性】選項(xiàng)。

2)單擊【高級(jí)】節(jié)點(diǎn)。

3)在【雜項(xiàng)】里設(shè)置【允許觸發(fā)器激活其他觸發(fā)器】為TrueFalse。如圖10所示:

10 開啟/關(guān)閉觸發(fā)器嵌套

現(xiàn)在,在Northwind數(shù)據(jù)庫(kù)里建一個(gè)操作記錄表,用來記錄所有數(shù)據(jù)表的操作,無論是對(duì)哪個(gè)數(shù)據(jù)表進(jìn)行了插入、更新或刪除,都可以把操作內(nèi)容和操作時(shí)間記錄到操作記錄表里。下面是建立操作記錄表的SQL語句:

CREATE TABLE 操作記錄表(

         編號(hào) int IDENTITY(1,1) NOT NULL,

         操作表名 varchar(50) NOT NULL,

         操作語句 varchar(2000) NOT NULL,

         操作內(nèi)容 varchar(2000) NOT NULL,

         操作時(shí)間 datetime NOT NULL

         CONSTRAINT DF_操作記錄表_操作時(shí)間 DEFAULT (getdate()),

 CONSTRAINT PK_操作記錄表 PRIMARY KEY CLUSTERED

(

         編號(hào) ASC

)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]

) ON [PRIMARY]

GO

為了簡(jiǎn)便起見,在操作記錄表里,只建一個(gè)After Insert觸發(fā)器,觸發(fā)器的作用是輸入一條語句:數(shù)據(jù)庫(kù)又有記錄變動(dòng)了。在實(shí)際應(yīng)用時(shí),讀者可自行修改成所需的代碼。

CREATE TRIGGER 操作記錄表_Insert

   ON  操作記錄表

   AFTER INSERT

AS

BEGIN

         print '數(shù)據(jù)庫(kù)又有記錄變動(dòng)了'

END

GO

作為示例,只在類別表里建立一個(gè)After Insert觸發(fā)器,當(dāng)在類別表里插入一條記錄的時(shí)候,該觸發(fā)器向操作記錄表里插入一條記錄,而在操作記錄表里插入記錄時(shí),將會(huì)觸發(fā)操作記錄表里的【操作記錄表_Insert】觸發(fā)器。

CREATE TRIGGER 類別_Insert

   ON  類別

   AFTER INSERT

AS

BEGIN

         Declare

         @類別名稱 nvarchar(15),

     @說明 nvarchar(max)

         set @類別名稱= (Select 類別名稱 from inserted)

         set @說明= (Select 說明 from inserted)

         INSERT INTO 操作記錄表(操作表名,操作語句,操作內(nèi)容)

     VALUES ('類別表','插入記錄','類別名稱:'+@類別名稱+',說明:'+@說明)

END

GO

現(xiàn)在運(yùn)行一下對(duì)類別表的插入語句

INSERT INTO 類別(類別名稱,說明)

VALUES ('書籍','各類圖書')

運(yùn)行結(jié)果如圖11所示:

11 觸發(fā)器嵌套被激活

在【消息】對(duì)話框可以看到數(shù)據(jù)庫(kù)又有記錄變動(dòng)了,這說明,觸發(fā)器已經(jīng)被嵌套激活了。如果把【允許觸發(fā)器激活其他觸發(fā)器】的選項(xiàng)設(shè)為False,再看看運(yùn)行結(jié)果:

12 觸發(fā)器嵌套沒有被激活

如圖2所示,現(xiàn)在沒有數(shù)據(jù)庫(kù)又有記錄變動(dòng)了的提示輸出,說明嵌套的觸發(fā)器沒有被激活。

 觸發(fā)器的嵌套

當(dāng)一個(gè)觸發(fā)器執(zhí)行時(shí),能夠觸活另一個(gè)觸發(fā)器,這種情況就是觸發(fā)器的嵌套。在SQL Server 2005里,觸發(fā)器能夠嵌套到32層。

如果不想對(duì)觸發(fā)器進(jìn)行嵌套的話,可以通過【允許觸發(fā)器激活其他觸發(fā)器】的服務(wù)器配置選項(xiàng)來控制。但不管此設(shè)置是什么,都可以嵌套Instead Of觸發(fā)器。設(shè)置觸發(fā)器嵌套的選項(xiàng)更改方法為:

1)打開Management Studio,在【對(duì)象資源管理】中,右擊服務(wù)器名,并選擇【屬性】選項(xiàng)。

2)單擊【高級(jí)】節(jié)點(diǎn)。

3)在【雜項(xiàng)】里設(shè)置【允許觸發(fā)器激活其他觸發(fā)器】為TrueFalse。如圖10所示:

10 開啟/關(guān)閉觸發(fā)器嵌套

現(xiàn)在,在Northwind數(shù)據(jù)庫(kù)里建一個(gè)操作記錄表,用來記錄所有數(shù)據(jù)表的操作,無論是對(duì)哪個(gè)數(shù)據(jù)表進(jìn)行了插入、更新或刪除,都可以把操作內(nèi)容和操作時(shí)間記錄到操作記錄表里。下面是建立操作記錄表的SQL語句:

CREATE TABLE 操作記錄表(

         編號(hào) int IDENTITY(1,1) NOT NULL,

         操作表名 varchar(50) NOT NULL,

         操作語句 varchar(2000) NOT NULL,

         操作內(nèi)容 varchar(2000) NOT NULL,

         操作時(shí)間 datetime NOT NULL

         CONSTRAINT DF_操作記錄表_操作時(shí)間 DEFAULT (getdate()),

 CONSTRAINT PK_操作記錄表 PRIMARY KEY CLUSTERED

(

         編號(hào) ASC

)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]

) ON [PRIMARY]

GO

為了簡(jiǎn)便起見,在操作記錄表里,只建一個(gè)After Insert觸發(fā)器,觸發(fā)器的作用是輸入一條語句:數(shù)據(jù)庫(kù)又有記錄變動(dòng)了。在實(shí)際應(yīng)用時(shí),讀者可自行修改成所需的代碼。

CREATE TRIGGER 操作記錄表_Insert

   ON  操作記錄表

   AFTER INSERT

AS

BEGIN

         print '數(shù)據(jù)庫(kù)又有記錄變動(dòng)了'

END

GO

作為示例,只在類別表里建立一個(gè)After Insert觸發(fā)器,當(dāng)在類別表里插入一條記錄的時(shí)候,該觸發(fā)器向操作記錄表里插入一條記錄,而在操作記錄表里插入記錄時(shí),將會(huì)觸發(fā)操作記錄表里的【操作記錄表_Insert】觸發(fā)器。

CREATE TRIGGER 類別_Insert

   ON  類別

   AFTER INSERT

AS

BEGIN

         Declare

         @類別名稱 nvarchar(15),

     @說明 nvarchar(max)

         set @類別名稱= (Select 類別名稱 from inserted)

         set @說明= (Select 說明 from inserted)

         INSERT INTO 操作記錄表(操作表名,操作語句,操作內(nèi)容)

     VALUES ('類別表','插入記錄','類別名稱:'+@類別名稱+',說明:'+@說明)

END

GO

現(xiàn)在運(yùn)行一下對(duì)類別表的插入語句

INSERT INTO 類別(類別名稱,說明)

VALUES ('書籍','各類圖書')

運(yùn)行結(jié)果如圖11.11所示:

11 觸發(fā)器嵌套被激活

在【消息】對(duì)話框可以看到數(shù)據(jù)庫(kù)又有記錄變動(dòng)了,這說明,觸發(fā)器已經(jīng)被嵌套激活了。如果把【允許觸發(fā)器激活其他觸發(fā)器】的選項(xiàng)設(shè)為False,再看看運(yùn)行結(jié)果:

12 觸發(fā)器嵌套沒有被激活

如圖12所示,現(xiàn)在沒有數(shù)據(jù)庫(kù)又有記錄變動(dòng)了的提示輸出,說明嵌套的觸發(fā)器沒有被激活。

  
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Mysql中的觸發(fā)器
數(shù)據(jù)庫(kù)設(shè)計(jì)(7/9):觸發(fā)器
SQL Server 觸發(fā)器
MySQL的經(jīng)典用法(五)----觸發(fā)器
Oracle觸發(fā)器介紹 語句級(jí)觸發(fā)器
語句級(jí)觸發(fā)器(表級(jí)別觸發(fā)器)、行級(jí)觸發(fā)器
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服