たとえば、A、B、Cの3つの列で構成される複合主キーを持つテーブルがあります。UPDATE
これらの3つの列が変更されないことを確認するトリガーを作成します。これは私がこれまでに持っているものですが、うまくいかないようです:
CREATE TRIGGER TableTrigger
ON Table
AFTER INSERT, UPDATE AS
BEGIN
IF (EXISTS (SELECT * FROM inserted) AND EXISTS (SELECT * FROM deleted))
BEGIN
-- Update Operation
IF (SELECT COUNT(*) FROM inserted WHERE A IS NOT NULL OR B IS NOT NULL OR C IS NOT NULL) > 0
BEGIN
RAISERROR('Error, you cannot change Primary Key columns', 16, 1)
ROLLBACK
RETURN
END
END
テーブルの一部の値を更新するinserted
と、列の値がNULLに更新されないことを期待していましたが、そうではありません。私はどこかで、これらの値が変更されたかどうかを調べinserted
て確認する必要があることを読みました。deleted
だから私の質問はこれです、カーソルを使わずにこれをチェックできますか?
ありがとうございました。