猿问

如何知道表中是否有变化?

我们有一个 PLM 系统,用户可以在其中创建/更新对象(即产品、配色等...)。这个对象最终被存储到 sqlserver 数据库中。这些表确实有一列用于 modifyTimeStamp。当用户更新对象时,该字段已更新时间戳。

我们正在将此工具与其他一些应用程序集成。这个其他应用程序需要知道何时有人为我们的 PLM 系统创建/更新对象。

实现这一目标的最佳方法是什么?编写某种监听器,它会一直监听,如果表中有变化,它会通知?

另一种方法可能是触发。但是,那么我的代码将如何调用该触发器,因为触发器仅在该表的范围内?


侃侃无极
浏览 411回答 2
2回答

HUX布斯

SQL Server 有一项称为“更改跟踪”的功能。必须首先为数据库激活它。如果它被激活,您可以发出特殊查询,返回有关特定表中数据更改的信息。根据文档中的示例,查询DECLARE @last_sync_version bigint;&nbsp;&nbsp;SET @last_sync_version = <value obtained from query>;&nbsp;&nbsp;SELECT [Emp ID], SSN,&nbsp;&nbsp;&nbsp; &nbsp; SYS_CHANGE_VERSION, SYS_CHANGE_OPERATION,&nbsp;&nbsp;&nbsp; &nbsp; SYS_CHANGE_COLUMNS, SYS_CHANGE_CONTEXT&nbsp; &nbsp;FROM CHANGETABLE (CHANGES Employees, @last_sync_version) AS C;将返回Employees表中自 以来的数据更改@last_sync_version。

天涯尽头无女友

我认为有很多方法可以解决这个问题。我将尝试描述一些。在侦听应用程序上创建调度程序。我建议实现一个调度程序,它会在每个给定的时间间隔运行以根据修改时间获取最新数据并处理它们。在侦听应用程序上创建一个新 API 并通过创建/更新应用程序调用它。使用微服务架构,例如在应用程序之间使用消息传递服务来通知一个或另一个创建/更新事件。我希望它会帮助你并祝你好运!
随时随地看视频慕课网APP

相关分类

Java
我要回答