记录对表的修改/更新的SQL Server触发器
我有一个关于这个话题的问题 这对我很有帮助,但我对提供的答案有一个后续问题。在审计表中。我试图从正在审核的表中捕获一列。让我们调用列名“ID”。我已经在审计表中说明了此列,但无法确定如何将其编码到捕获“ID”列值并将其存储在审计表中的位置 有人能帮我吗 基本上,在“TableBeingAudited”中有一列名为“ID” 我希望捕获“ID”列中的值并将其存储到“AuditTable”中 我搞不懂怎么编码。我知道我必须声明它,但不知道如何将其编码到此处代码的插入/选择部分:记录对表的修改/更新的SQL Server触发器,sql,sql-server,logging,triggers,Sql,Sql Server,Logging,Triggers,我有一个关于这个话题的问题 这对我很有帮助,但我对提供的答案有一个后续问题。在审计表中。我试图从正在审核的表中捕获一列。让我们调用列名“ID”。我已经在审计表中说明了此列,但无法确定如何将其编码到捕获“ID”列值并将其存储在审计表中的位置 有人能帮我吗 基本上,在“TableBeingAudited”中有一列名为“ID” 我希望捕获“ID”列中的值并将其存储到“AuditTable”中 我搞不懂怎么编码。我知道我必须声明它,但不知道如何将其编码到此处代码的插入/选择部分: insert Audi
insert Audit ( Type,
TableName,
PK,
FieldName,
OldValue,
NewValue,
UpdateDate,
UserName)
select ''' + @Type + ''','''
+ @TableName + ''',' + @PKSelect
+ ',''' + @fieldname + ''''
+ ',convert(varchar(1000),d.' + @fieldname + ')'
+ ',convert(varchar(1000),i.' + @fieldname + ')'
+ ',''' + @UpdateDate + ''''
+ ',''' + @UserName + ''''
+ ' from #ins i full outer join #del d'
+ @PKCols
+ ' where i.' + @fieldname + ' <> d.' + @fieldname
+ ' or (i.' + @fieldname + ' is null and d.'
+ @fieldname
+ ' is not null)'
+ ' or (i.' + @fieldname + ' is not null and d.'
+ @fieldname
+ ' is null)'
EXEC (@sql)
END
END
GO
答案的哪一部分需要改变?将该部分复制到您的问题中可能有助于其他人更快地回答。我已更新到需要包含该列的代码部分。希望有人能提供帮助。谢谢,没关系,我想出来了!非常感谢。伟大的请将您的答案张贴在此处并接受,以便其他人可以从您的问题中受益。