Sql 将记录从DB写入varchar变量/更新触发器
我有两个问题需要帮助:) 我必须在sys表上创建触发器来记录任何更改,例如更新、删除和插入 我想将日志保存在表中,该表将有一列存储记录中的数据(旧的或新的-插入/删除),或存储记录的旧版本和新版本之间的差异(更新) 我的问题是如何存储这些信息,特别是如何将简单记录“转换”为字符串,以及如何记录更新。我想我可以用这样的东西:Sql 将记录从DB写入varchar变量/更新触发器,sql,sql-server-2008,tsql,Sql,Sql Server 2008,Tsql,我有两个问题需要帮助:) 我必须在sys表上创建触发器来记录任何更改,例如更新、删除和插入 我想将日志保存在表中,该表将有一列存储记录中的数据(旧的或新的-插入/删除),或存储记录的旧版本和新版本之间的差异(更新) 我的问题是如何存储这些信息,特别是如何将简单记录“转换”为字符串,以及如何记录更新。我想我可以用这样的东西: exec ('select ' + @col + ' from deleted') 跳跳虎的身体,但它不工作 @col变量是列的名称。我不知道列的名称及其计数(我希望我的触
exec ('select ' + @col + ' from deleted')
跳跳虎的身体,但它不工作
@col变量是列的名称。我不知道列的名称及其计数(我希望我的触发器对每个表都是通用的)。要存储列名,我使用基于命令的游标:
select
COLUMN_NAME
from
INFORMATION_SCHEMA.COLUMNS
where
TABLE_NAME = (SELECT object_name(parent_obj)
FROM sysobjects WHERE id = @@procid)
请帮助:)尽管您可以设置一个非常有用的工具(您可能会发现本文很有用)。我知道有一些审计工具,但我只能使用t-sql来完成这项工作。我认为这可能非常有用。谢谢链接上的脚本显示了如何设置表并向要审核的表添加触发器。