佳木斯湛栽影视文化发展公司

主頁 > 知識庫 > 判斷觸發(fā)器正在處理的是插入,刪除還是更新觸發(fā)

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

熱門標簽:鐵路電話系統(tǒng) 呼叫中心市場需求 Linux服務器 百度競價排名 AI電銷 地方門戶網站 服務外包 網站排名優(yōu)化
但是有時候,可以視看處進邏輯程度,可以把三者寫成一個觸發(fā)器,只是在其中稍作判斷而已。

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

復制代碼 代碼如下:

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

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

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

--如果兩個表都有記錄,說明觸發(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'刪除')


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

觸發(fā)器有兩個虛擬表,Inserted表和Deleted表,這兩個表在不同操作情況之下,表中的數據狀態(tài)可不一樣。
一、插入操作(INSERT)時:Inserted表有數據,Deleted表無數據。
二、更新操作(UPDATE)時:Inserted表有數據(新數據),Deleted表有數據(舊數據)。
三、刪除操作(DELETE)時:Inserted表無數據,Deleted表有數據。
您可能感興趣的文章:
  • sqlserver 觸發(fā)器實例代碼
  • 簡單觸發(fā)器的使用 獻給SQL初學者
  • sqlserver 觸發(fā)器教程
  • SQL Server觸發(fā)器及觸發(fā)器中的事務學習
  • MySQL與SQL的觸發(fā)器的不同寫法
  • sqlserver 禁用觸發(fā)器和啟用觸發(fā)器的語句
  • SQL Server 2000中的觸發(fā)器使用
  • 數據庫觸發(fā)器(Trigger)的一點使用心得
  • SQLServer 觸發(fā)器 數據庫進行數據備份

標簽:黃山 仙桃 湖南 衡水 湘潭 崇左 銅川 蘭州

巨人網絡通訊聲明:本文標題《判斷觸發(fā)器正在處理的是插入,刪除還是更新觸發(fā)》,本文關鍵詞  ;如發(fā)現本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    黔西| 呼伦贝尔市| 崇文区| 郑州市| 仁怀市| 沅江市| 从化市| 宜州市| 揭西县| 泰顺县| 格尔木市| 张掖市| 广州市| 金秀| 绥中县| 博罗县| 思茅市| 长岛县| 建始县| 瑞昌市| 英山县| 武隆县| 措美县| 正镶白旗| 翁源县| 金阳县| 永德县| 新和县| 景泰县| 盈江县| 伽师县| 潼南县| 龙海市| 响水县| 香港| 屯昌县| 涿鹿县| 孝昌县| 涟源市| 揭东县| 类乌齐县|