国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫 > SQL Server > 正文

判斷觸發(fā)器正在處理的是插入,刪除還是更新觸發(fā)

2024-08-31 00:45:20
字體:
供稿:網(wǎng)友
但是有時(shí)候,可以視看處進(jìn)邏輯程度,可以把三者寫成一個(gè)觸發(fā)器,只是在其中稍作判斷而已。

你可以根據(jù)從下面方法判斷觸發(fā)器是是處理了插入,刪除還是更新觸發(fā)的:

復(fù)制代碼 代碼如下:


--宣告兩個(gè)變量
DECLARE @D BIT = 0
DECLARE @I BIT = 0

--如果在DELETED內(nèi)部臨時(shí)觸發(fā)表找到記錄,說明舊數(shù)據(jù)被刪除
IF EXISTS(SELECT TOP 1 1 FROM DELETED)
SET @D = 1

--如果在INSERTED內(nèi)部臨時(shí)觸發(fā)表找到記錄,說明有新數(shù)據(jù)插入
IF EXISTS(SELECT TOP 1 1 FROM INSERTED)
SET @I = 1

--如果兩個(gè)表都有記錄,說明觸發(fā)器是執(zhí)行更新觸發(fā)
IF @I = 1 AND @D = 1
PRINT(N'更新。')

--如果變量@I值被變更為1,而變量@D沒有變更,說明觸發(fā)器是執(zhí)行插入觸發(fā)
IF @I = 1 AND @D = 0
PRINT(N'插入')

--下面判斷成立,說明說明觸發(fā)器是執(zhí)行刪除觸發(fā)
IF @I = 0 AND @D = 1
PRINT(N'刪除')



另外有關(guān)兩個(gè)內(nèi)部臨時(shí)觸發(fā)表,觸發(fā)器的Inserted表和Deleted表

觸發(fā)器有兩個(gè)虛擬表,Inserted表和Deleted表,這兩個(gè)表在不同操作情況之下,表中的數(shù)據(jù)狀態(tài)可不一樣。
一、插入操作(INSERT)時(shí):Inserted表有數(shù)據(jù),Deleted表無數(shù)據(jù)。
二、更新操作(UPDATE)時(shí):Inserted表有數(shù)據(jù)(新數(shù)據(jù)),Deleted表有數(shù)據(jù)(舊數(shù)據(jù))。
三、刪除操作(DELETE)時(shí):Inserted表無數(shù)據(jù),Deleted表有數(shù)據(jù)。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 天峨县| 蕲春县| 平舆县| 英吉沙县| 四子王旗| 临颍县| 澄迈县| 嵊泗县| 波密县| 习水县| 资阳市| 兰考县| 香格里拉县| 济宁市| 当阳市| 潜江市| 连平县| 新安县| 苏尼特左旗| 东阿县| 兴隆县| 灌阳县| 甘洛县| 黎平县| 伊通| 东台市| 凭祥市| 浪卡子县| 阜新| 元阳县| 正蓝旗| 常熟市| 周宁县| 南陵县| 元江| 开封县| 永春县| 合川市| 若尔盖县| 凯里市| 内黄县|