0

Delete / Update / Insertアクションが実行されたときに、テーブルのトリガーを作成しました。

それが削除であったかどうかをテストするには、次のステートメントを使用します。

if exists(select * from deleted)

そしてそれが挿入物だった場合:

if exists(select * from inserted)

しかし、それが更新であったかどうかをどのようにテストできますか

4

1 に答える 1

1
 SET @action = 'I'; -- Set Action to Insert by default.
    IF EXISTS(SELECT * FROM DELETED)
    BEGIN
        SET @action = 
            CASE
                WHEN EXISTS(SELECT * FROM INSERTED) THEN 'U' -- Set Action to Updated.
                ELSE 'D' -- Set Action to Deleted.       
            END
    END
    ELSE 
    BEGIN
        IF NOT EXISTS(SELECT * FROM INSERTED) -- New record inserted.
             SET @action = 'I';
    END
于 2013-03-06T09:42:54.460 に答える