如何在SQL Server 2005中更新列时进行日志记录?

Mar*_*ijn 0 t-sql logging sql-server-2005

我遇到了数据库的问题,似乎列的更新值错误.目前,我不知道哪个程序正在执行此操作.找到这个的最佳方法是什么?可以帮助我的事情是:

  • 应用程序名称
  • 执行应用程序的主机
  • 确切的SQL语句.

交易日志可以帮助我吗?我能以某种方式编写日志记录触发器吗?

帮助将不胜感激.

gbn*_*gbn 5

你可以创建一个触发器和一个表

CREATE TRIGGER TRG_foo_U On foo FOR UPDATE
AS
SET NOCOUNT ON

IF UPDATE(bar)
   INSERT logtable
   SELECT APP_NAME(), HOST_NAME(), SUSER_SNAME(), GETDATE(), * FROM INSERTED
GO
Run Code Online (Sandbox Code Playgroud)

  • 不要忘记getdate(),以跟踪尝试更新的时间! (2认同)