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