実際の変更でのみ発生するT-SQLトリガーはどのように作成されますか?
別のテーブルに行を追加するUPDATEおよびINSERTのテーブルトリガーがあります。4つの列のいずれかが変更された場合にのみ行を追加する必要があります。IF UPDATE(col)を使用して変更をテストしようとしましたが、盲点がありました。これは、いくつかの値が入ったことをテストするだけです。深く掘り下げる必要があります。新旧の値を比較して、真の変化が発生したことを確認する必要があります。INSERTとUPDATEの両方で機能する必要があります。 挿入されたテーブルと削除されたテーブルの両方にトリガー内で比較できる値があるため、簡単なUPDATEの場合。ただし、INSERTの場合、値を持つのは挿入テーブルだけです。これはすべて同じトリガーで必要なので、そのINSERTケースをどのように処理しますか? これが、変更するトリガーのスクリプトです。 ALTER TRIGGER [dbo].[trATPerson_alter] ON [mydb].[dbo].[AT_Person] AFTER INSERT,UPDATE AS BEGIN SET NOCOUNT ON; -- Not all updates require a push IF (UPDATE([First_Name]) OR UPDATE([Last_Name]) OR UPDATE([JobCode]) OR UPDATE([Inactive])) BEGIN INSERT INTO [mydb].[dbo].[AT_Person_To_Push] ( [Facility], [VendorID], [Person_code], [First_Name], [Last_Name], [JobCode], [Alink], [Inactive] ) SELECT [Facility], [VendorID], [Person_code], [First_Name], …