質問は、古いレコードが新しいレコードと異なる場合にのみレコードを更新するトリガーを作成することです。ヘルプを得ることができますか?
CREATE TRIGGER update_marketingliste
ON marketing_list FOR UPDATE
AS
BEGIN
SELECT * FROM INSERTED
END
質問は、古いレコードが新しいレコードと異なる場合にのみレコードを更新するトリガーを作成することです。ヘルプを得ることができますか?
CREATE TRIGGER update_marketingliste
ON marketing_list FOR UPDATE
AS
BEGIN
SELECT * FROM INSERTED
END
スキーマが何であるかはわかりませんが、以下のサンプル コードは、これがどのように行われるかを理解するのに役立つはずです。
外出先でカウントを設定
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 を実行しません。
行く
ドロップテーブルテストゴー