首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何知道表中是否有变化?

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

Stack Overflow用户
提问于 2018-10-23 10:01:40
回答 2查看 65关注 0票数 0

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

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

实现这一目标的最好方法是什么?编写某种侦听器,它将继续侦听,如果表中有更改,它会通知吗?

另一种方法可能是有触发器。但是,当触发器只在该表的范围内时,我的代码将如何调用该触发器呢?

EN

回答 2

Stack Overflow用户

发布于 2018-10-23 10:10:37

我认为有很多方法可以解决这个问题。我将试着描述几个。

  1. 在侦听应用程序上创建调度程序。我建议实现一个调度程序,它将在每个给定的时间间隔运行,以根据修改时间获取最新数据并对其进行处理。
  2. 在侦听应用程序上创建新的application.
  3. Using,并通过创建/更新微服务体系结构来调用它,例如使用应用程序之间的消息传递服务来通知一个或另一个创建/更新事件。

我希望它能帮助你,祝你好运!

票数 0
EN

Stack Overflow用户

发布于 2018-10-23 10:14:21

SQL Server有一个名为"Change Tracking“的功能。必须首先为数据库激活它。如果它被激活,您可以发出特殊查询,返回有关特定表中数据更改的信息。

根据docs中的示例,查询

代码语言:javascript
复制
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表中的数据更改。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52940094

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档