Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
记录对表的修改/更新的SQL Server触发器_Sql_Sql Server_Logging_Triggers - Fatal编程技术网

记录对表的修改/更新的SQL Server触发器

记录对表的修改/更新的SQL Server触发器,sql,sql-server,logging,triggers,Sql,Sql Server,Logging,Triggers,我有一个关于这个话题的问题 这对我很有帮助,但我对提供的答案有一个后续问题。在审计表中。我试图从正在审核的表中捕获一列。让我们调用列名“ID”。我已经在审计表中说明了此列,但无法确定如何将其编码到捕获“ID”列值并将其存储在审计表中的位置 有人能帮我吗 基本上,在“TableBeingAudited”中有一列名为“ID” 我希望捕获“ID”列中的值并将其存储到“AuditTable”中 我搞不懂怎么编码。我知道我必须声明它,但不知道如何将其编码到此处代码的插入/选择部分: insert Audi

我有一个关于这个话题的问题

这对我很有帮助,但我对提供的答案有一个后续问题。在审计表中。我试图从正在审核的表中捕获一列。让我们调用列名“ID”。我已经在审计表中说明了此列,但无法确定如何将其编码到捕获“ID”列值并将其存储在审计表中的位置

有人能帮我吗

基本上,在“TableBeingAudited”中有一列名为“ID”

我希望捕获“ID”列中的值并将其存储到“AuditTable”中

我搞不懂怎么编码。我知道我必须声明它,但不知道如何将其编码到此处代码的插入/选择部分:

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

答案的哪一部分需要改变?将该部分复制到您的问题中可能有助于其他人更快地回答。我已更新到需要包含该列的代码部分。希望有人能提供帮助。谢谢,没关系,我想出来了!非常感谢。伟大的请将您的答案张贴在此处并接受,以便其他人可以从您的问题中受益。