日韩欧美人妻无码精品白浆,夜夜嗨AV免费入口,国产欧美官网在线看,高校回应聋哑女生因长相完美被质疑

LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開(kāi)發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

SQL Server2000 觸發(fā)器

admin
2011年3月14日 15:9 本文熱度 4029
觸發(fā)器是一種特殊的存儲(chǔ)過(guò)程,在用戶試圖對(duì)指定的表執(zhí)行指定的數(shù)據(jù)修改語(yǔ)句時(shí)自動(dòng)執(zhí)行。創(chuàng)建語(yǔ)法:



 引用內(nèi)容

Create TRIGGER trigger_name ON {table | view}
{INSTEAD OF | AFTER} {[Insert] [,] [Update] [,] [Delete]}
AS
sql_statement

下邊主要說(shuō)下INSTEAD OF和AFTER兩個(gè)參數(shù)的區(qū)別:

·執(zhí)行時(shí)間:INSTEAD OF在SQL語(yǔ)句執(zhí)行前觸發(fā),并且SQL語(yǔ)句不會(huì)再執(zhí)行;AFTER則是在SQL語(yǔ)句執(zhí)行后觸發(fā)。
·適用對(duì)象:INSTEAD OF適用于表和視圖;AFTER只能用于表。
·數(shù)量:Insert、Update和Delete允許有多個(gè)AFTER觸發(fā)器,但只能有一個(gè)INSTEAD OF觸發(fā)器。

再來(lái)說(shuō)說(shuō)觸發(fā)器中經(jīng)常會(huì)用到的兩張表:inserted和deleted。這兩張表在結(jié)構(gòu)上類似于定義觸發(fā)器的表,其中inserted存放的是Insert的記錄或Update后的新記錄,deleted存放的是Delete的記錄或Update前的舊記錄。例如當(dāng)觸發(fā)器中SQL語(yǔ)句的執(zhí)行條件是判斷新增記錄某個(gè)字段值來(lái)進(jìn)行的,那么就得從inserted獲取新增記錄。

示例



 程序代碼

/*
    download表增加一條記錄時(shí)更新天預(yù)統(tǒng)計(jì)表count1
*/
Create TRIGGER DownCountTR ON download
AFTER Insert
AS
    IF @@rowcount>0
    BEGIN
        DECLARE @date1 datetime
        --從Inserted表中獲取新下載的時(shí)間
        Select @date1=convert(nvarchar(10),regtime,120) FROM Inserted
        
        --更新count1表
        IF exists(Select * FROM count1 Where regtime=@date1)
            Update count1 SET downcount=downcount+1 Where regtime=@date1
        ELSE
            Insert INTO count1(downcount,regtime) VALUES(1,@date1)
    END



 程序代碼

/*
    禁止對(duì)表的更新和刪除
*/
Create TRIGGER STOP ON dbo.table1
INSTEAD OF Update, Delete
AS
RETURN

遞歸觸發(fā)器

當(dāng)在 sp_dboption 中啟用 recursive triggers 設(shè)置時(shí),SQL Server 還允許觸發(fā)器的遞歸調(diào)用。遞歸觸發(fā)器允許發(fā)生兩種類型的遞歸:

·間接遞歸
·直接遞歸

使用間接遞歸時(shí),應(yīng)用程序更新表 T1,從而激發(fā)觸發(fā)器 TR1,該觸發(fā)器更新表 T2。在這種情況下,觸發(fā)器 T2 將激發(fā)并更新 T1。

使用直接遞歸時(shí),應(yīng)用程序更新表 T1,從而激發(fā)觸發(fā)器 TR1,該觸發(fā)器更新表 T1。由于表 T1 被更新,觸發(fā)器 TR1 再次激發(fā),依此類推。

說(shuō)明  只有啟用 sp_dboption 的 recursive triggers 設(shè)置,才會(huì)發(fā)生上述行為。對(duì)于為給定事件定義的多個(gè)觸發(fā)器,并沒(méi)有確定的執(zhí)行順序。每個(gè)觸發(fā)器都應(yīng)是自包含的。禁用 recursive triggers 設(shè)置只能禁止直接遞歸。若要也禁用間接遞歸,請(qǐng)使用 sp_configure 將 nested triggers 服務(wù)器選項(xiàng)設(shè)置為 0。

如果任一觸發(fā)器執(zhí)行了 ROLLBACK TRANSACTION 語(yǔ)句,則無(wú)論嵌套級(jí)是多少,都不會(huì)進(jìn)一步執(zhí)行其它觸發(fā)器。

嵌套觸發(fā)器

觸發(fā)器最多可以嵌套 32 層。如果一個(gè)觸發(fā)器更改了包含另一個(gè)觸發(fā)器的表,則第二個(gè)觸發(fā)器將激活,然后該觸發(fā)器可以再調(diào)用第三個(gè)觸發(fā)器,依此類推。如果鏈中任意一個(gè)觸發(fā)器引發(fā)了無(wú)限循環(huán),則會(huì)超出嵌套級(jí)限制,從而導(dǎo)致取消觸發(fā)器。若要禁用嵌套觸發(fā)器,請(qǐng)用 sp_configure 將 nested triggers 選項(xiàng)設(shè)置為 0(關(guān)閉)。默認(rèn)配置允許嵌套觸發(fā)器。如果嵌套觸發(fā)器是關(guān)閉的,則也將禁用遞歸觸發(fā)器,與 sp_dboption 的 recursive triggers 設(shè)置無(wú)關(guān)。

該文章在 2011/3/14 15:09:04 編輯過(guò)
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國(guó)內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場(chǎng)、車隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場(chǎng)作業(yè)而開(kāi)發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉(cāng)儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購(gòu)管理,倉(cāng)儲(chǔ)管理,倉(cāng)庫(kù)管理,保質(zhì)期管理,貨位管理,庫(kù)位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved