我的任务是将我们的产品与另一个第三方产品挂钩。我需要做的一件事是在添加新的“项目”时模仿第三方的一些产品功能 - 这可以触及多个数据库表。有没有办法向数据库添加某种全局挂钩来记录对数据所做的所有更改?
我想添加钩子,使用第三方应用程序创建一个项目,然后检查所有表都受到了影响。
我知道这不仅仅是新的行,我遇到了许多看起来为新项目增加的计数字段,我担心在新项目插入时可能会有其他记录被修改,而不仅仅是正在添加的新行。
感谢您的帮助~普雷斯科特
我的任务是将我们的产品与另一个第三方产品挂钩。我需要做的一件事是在添加新的“项目”时模仿第三方的一些产品功能 - 这可以触及多个数据库表。有没有办法向数据库添加某种全局挂钩来记录对数据所做的所有更改?
我想添加钩子,使用第三方应用程序创建一个项目,然后检查所有表都受到了影响。
我知道这不仅仅是新的行,我遇到了许多看起来为新项目增加的计数字段,我担心在新项目插入时可能会有其他记录被修改,而不仅仅是正在添加的新行。
感谢您的帮助~普雷斯科特
确保日志不会被重用:
然后:
select * from ::fn_log(oldcurrentLSN, NULL);
所有的写操作都会出现在日志中。从物理操作(分配单元 ID)可以得到逻辑操作(对象 ID)。
话虽如此,如果您打算直接在数据库级别与其交互,您可能应该对第 3 方模式和数据模型有一个不错的了解。如果您计划更新 3rd 方工具,并且您甚至不知道要更新哪些表,那么您很可能最终会损坏其数据。
我可以想到以下方法可以跟踪更改