私は、ProjectIDに対する変更を監査テーブルに渡すだけです。たとえば変更が行われたが、バルブが同じままである場合、レコードは監査テーブルに追加されません。監査テーブルへの実際の変更を渡すだけのトリガー
CREATE TRIGGER trgAfterUpdate ON [dbo].[Assets]
FOR UPDATE
AS
declare @assetid int;
declare @assetname nvarchar(max);
declare @projectid int;
declare @audit_action varchar(100);
select @assetid=i.AssetID from inserted i;
select @assetname=i.AssetName from inserted i;
select @projectid=i.ProjectID from inserted i;
if update(ProjectID)
set @audit_action='Updated Record -- After Update Trigger.';
insert into Asset_Test_Audit(AssetID,AssetName,Projectid,Audit_Action,Audit_Timestamp)
values(@assetid,@assetname,@projectid,@audit_action,getdate());
PRINT 'AFTER UPDATE Trigger fired.'
GO
どのRDBMSがありますか?タグを追加してください。 – vulkanino
MS SQLには 'BEFORE'トリガがないので、' INSTEAD OF'トリガを使うことができます。 – vulkanino