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

首頁 > 數據庫 > SQL Server > 正文

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

2020-07-25 13:17:24
字體:
來源:轉載
供稿:網友
但是有時候,可以視看處進邏輯程度,可以把三者寫成一個觸發器,只是在其中稍作判斷而已。

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

復制代碼 代碼如下:

--宣告兩個變量
DECLARE @D BIT = 0
DECLARE @I BIT = 0

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

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

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

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

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


另外有關兩個內部臨時觸發表,觸發器的Inserted表和Deleted表

觸發器有兩個虛擬表,Inserted表和Deleted表,這兩個表在不同操作情況之下,表中的數據狀態可不一樣。
一、插入操作(INSERT)時:Inserted表有數據,Deleted表無數據。
二、更新操作(UPDATE)時:Inserted表有數據(新數據),Deleted表有數據(舊數據)。
三、刪除操作(DELETE)時:Inserted表無數據,Deleted表有數據。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 宜宾县| 临江市| 三穗县| 井研县| 容城县| 黑水县| 沐川县| 本溪市| 开原市| 日照市| 昌黎县| 海林市| 桂东县| 北宁市| 蕉岭县| 留坝县| 新宁县| 余庆县| 宜春市| 柘城县| 罗平县| 伊通| 巴林右旗| 诸暨市| 九龙城区| 琼中| 和林格尔县| 咸宁市| 常熟市| 泌阳县| 伊宁市| 汤原县| 五华县| 张家港市| 忻州市| 环江| 汶川县| 许昌市| 凤山县| 桃源县| 名山县|