代码之家  ›  专栏  ›  技术社区  ›  Martijn

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

  •  0
  • Martijn  · 技术社区  · 14 年前

    我对一个数据库有问题,其中一个列似乎是用错误的值更新的。目前,我不知道是哪个程序在做这件事。什么是找到这个的最好方法?真正能帮助我的是,从帮助的角度来看:

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

    交易日志可以帮我吗?我能写一个日志触发器吗?

    我们将非常感谢您的帮助。

    3 回复  |  直到 14 年前
        1
  •  5
  •   gbn    14 年前

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

    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
    
        2
  •  1
  •   Ralph Shillington    14 年前

    SQL profiler将提供这些信息,我认为您应该能够应用一个过滤器,以便您需要捕获该特定对象上的事件。

        3
  •  0
  •   dotariel    14 年前

    您可以尝试使用SQL事件探查器查看数据库中正在进行的所有活动。