-1

質問は、古いレコードが新しいレコードと異なる場合にのみレコードを更新するトリガーを作成することです。ヘルプを得ることができますか?

CREATE TRIGGER update_marketingliste
ON marketing_list FOR UPDATE
AS
BEGIN

    SELECT * FROM INSERTED
END
4

1 に答える 1

0

スキーマが何であるかはわかりませんが、以下のサンプル コードは、これがどのように行われるかを理解するのに役立つはずです。

外出先でカウントを設定

CREATE TABLE test(col1 int 主キー , col2 int ) 行く

CREATE TRIGGER trg_test_upd on test INSTEAD OF UPDATE AS BEGIN

            IF  EXISTS (
                                SELECT * 
                                FROM Deleted  del -- old value
                                INNER JOIN Inserted ins  -- new value
                                on del.col1 = ins.col1 
                                and del.col2 = ins.col2)
            BEGIN 

                PRINT 'No Update'
                RETURN  --if old value is same as new value dont update
            END 
            ELSE 
            BEGIN 
                            UPDATE t1
                            set col2  = i.col2
                            from dbo.test t1 
                            inner join inserted i 
                            on t1.col1 = i.col1 

            END 

終了する

テストに挿入 (col1、col2) select 10, 10 go

テストセットを更新 col2 = 200、col1 = 10

SELECT * FROM テスト

--これは update update test set col2 = 200 を実行しません。

行く

ドロップテーブルテストゴー

于 2012-11-10T21:58:09.793 に答える