我们有一个PLM系统,用户可以在其中创建/更新对象(即产品、Colorway等)。此对象最终会存储到sqlserver数据库中。这些表确实有一个用于modifyTimeStamp的列。当用户更新对象时,该字段已更新时间戳。
我们正在将此工具与其他应用程序集成在一起。另一个应用程序需要知道何时有人在我们的PLM系统中创建/更新对象。
实现这一目标的最好方法是什么?编写某种侦听器,它将继续侦听,如果表中有更改,它会通知吗?
另一种方法可能是有触发器。但是,当触发器只在该表的范围内时,我的代码将如何调用该触发器呢?
发布于 2018-10-23 10:10:37
我认为有很多方法可以解决这个问题。我将试着描述几个。
我希望它能帮助你,祝你好运!
发布于 2018-10-23 10:14:21
SQL Server有一个名为"Change Tracking“的功能。必须首先为数据库激活它。如果它被激活,您可以发出特殊查询,返回有关特定表中数据更改的信息。
根据docs中的示例,查询
DECLARE @last_sync_version bigint;
SET @last_sync_version = <value obtained from query>;
SELECT [Emp ID], SSN,
SYS_CHANGE_VERSION, SYS_CHANGE_OPERATION,
SYS_CHANGE_COLUMNS, SYS_CHANGE_CONTEXT
FROM CHANGETABLE (CHANGES Employees, @last_sync_version) AS C;将返回自@last_sync_version以来Employees表中的数据更改。
https://stackoverflow.com/questions/52940094
复制相似问题