簡體   English   中英

如何使用多個觸發器?

[英]How to use multiple triggers?

DROP TRIGGER IF EXISTS N2Trigger


CREATE TRIGGER N2Trigger 
ON dbo.Date
FOR INSERT, DELETE 
AS 
BEGIN 
    SELECT 'Inserted Datebase' as MESSAGE
    SELECT 'Deleted Database' as MESSAGE
END

DELETE FROM dbo.[Date] WHERE ID = 1 

這是我在使用插入語句時只想要的代碼 return 'Inserted Datebase' as MESSAGE

當我使用刪除語句返回“已刪除數據庫”作為 MESSAGE

檢查觸發觸發器的操作的最簡單方法是檢查inserteddeleted的偽表。 如果觸發器僅在DELETE / INSERT而不是更新時,那么邏輯很簡單:

CREATE TRIGGER dbo.trFlarb ON dbo.flarb
  FOR INSERT, DELETE
  AS
  BEGIN
    IF EXISTS (SELECT 1 FROM inserted)
    BEGIN
      SELECT 'Inserted.';
    END

    IF EXISTS (SELECT 1 FROM deleted)
    BEGIN
      SELECT 'Deleted.';
    END
  END

現在,當然,Marc 是對的:觸發器不是用於返回或打印 output。 這只是一個演示,您可以使用這些檢查來執行在任一操作時需要執行的任何邏輯。

也就是說,如果您有兩件截然不同的事情要做,具體取決於它是插入還是刪除,為什么不創建兩個單獨的觸發器呢?

CREATE TRIGGER dbo.tr_I_Flarb ON dbo.flarb
  FOR INSERT
  AS
  BEGIN
      SELECT 'Inserted.';
  END
GO

CREATE TRIGGER dbo.tr_D_Flarb ON dbo.flarb
  FOR DELETE
  AS
  BEGIN
      SELECT 'Deleted.';
  END
GO

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM