テーブルの更新時に、更新のユーザーとタイムスタンプを含む2列前のデータ(アドレスと郵便番号)を記録するトリガーを作成しようとしています。また、両方の列が同時に更新された場合にのみ更新が必要で、変更がロールバックされていない場合にのみ必要です。私が作成した表:2列しか更新されない場合のT-SQLトリガー
CREATE TABLE PreviousAddress
(
a_user char (10) ,
a_date date ,
a_ID int IDENTITY (1, 1) NOT NULL ,
a_CustomerID int ,
a_PrevAddr char (50),
a_PrevPostCode char(10),
CONSTRAINT [PK_Previous] PRIMARY KEY(a_id))
私は、このテーブルにデータを挿入しますが、郵便番号と住所の両方が編集されている場合にのみ、トリガーを作成する方法上の任意のドキュメントを見つけることができませんか?
私の試み:
CREATE TRIGGER Addr_Audit
ON Customers
AFTER UPDATE
AS
IF UPDATE(Cus_Addr) OR UPDATE(Cus_Post_Code)
BEGIN
INSERT INTO PreviousAddress
SELECT CURRENT_USER, CURRENT_TIMESTAMP, CustomerID, CustomerAddress, CustomerPostcode FROM Deleted
END
「OR」を「AND」に変更します。 –
IF UPDATE(...)が機能している必要があります(あなたの場合はANDで使用します)。https://msdn.microsoft.com/de-de/library/ms187326.aspx – IngoB