Sql server 2005 有没有一种简单的方法可以跟踪SQL 2005数据库中的所有更改

Sql server 2005 有没有一种简单的方法可以跟踪SQL 2005数据库中的所有更改,sql-server-2005,tracking,Sql Server 2005,Tracking,我的任务是将我们的产品与另一个第三方产品挂钩。我需要做的一件事是,在添加新的“项目”时,模仿第三方的一些产品功能,这些项目可以触及多个数据库表。有没有办法向数据库添加某种全局钩子来记录对数据所做的所有更改 我想添加钩子,使用第三方应用程序创建一个项目,然后检查所有表都受到了哪些影响 我知道这不仅仅是新行,我遇到了许多计数字段,这些字段对于新项目来说是递增的,我担心在新项目插入时可能会修改其他记录,而不仅仅是添加新行 谢谢你的帮助 ~Prescott确保日志不会被重复使用: 数据库处于完全恢复模

我的任务是将我们的产品与另一个第三方产品挂钩。我需要做的一件事是,在添加新的“项目”时,模仿第三方的一些产品功能,这些项目可以触及多个数据库表。有没有办法向数据库添加某种全局钩子来记录对数据所做的所有更改

我想添加钩子,使用第三方应用程序创建一个项目,然后检查所有表都受到了哪些影响

我知道这不仅仅是新行,我遇到了许多计数字段,这些字段对于新项目来说是递增的,我担心在新项目插入时可能会修改其他记录,而不仅仅是添加新行

谢谢你的帮助
~Prescott

确保日志不会被重复使用:

  • 数据库处于完全恢复模式(真正完全,带有初始备份)
  • 日志备份维护任务在测试期间暂停
然后:

  • 写下当前数据库LSN
  • 运行您的第三方项目创建
  • 使用
    select*from::fn_log(oldcurrentLSN,NULL)检查新添加的日志信息
所有写操作都将显示在日志中。从物理操作(分配单元ID)到逻辑操作(对象ID)


话虽如此,如果您计划直接在数据库级别与第三方模式和数据模型进行交互,那么您应该对其有一个良好的理解。如果您计划更新第三方工具,而您甚至不知道要更新哪些表,那么很可能最终会损坏其数据。

我可以想出以下方法跟踪更改

  • 运行SQL Server Profiler,它将捕获服务器上运行的所有查询。您可以按数据库、模式或一组表等过滤这些内容
  • 使用第三方事务日志读取器。这是一个侵入性较小的过程。您必须确保已将数据库设置为完全恢复