具有水平过滤的事务复制

时间:2019-07-10 12:49:22

标签: sql-server replication

长话短说,是否可以在SQL服务器中复制具有连续评估功能的水平过滤功能的表行?

例如,我需要将表行复制到自最近两天或更长时间以来创建或更新的订户。我需要在源表中正在创建的任何行,但是它们的创建日期早于两天才被复制到订阅服务器,并且对任何新创建/更新的行都将连续执行此操作。我的意思是我不需要复制比两天新的记录。

我曾尝试在SQL Server 2017上使用过滤功能进行事务复制,但是过滤功能只是在复制创建时进行评估,之后,任何新行都不会传播到订阅服务器。

1 个答案:

答案 0 :(得分:0)

  • 在表中添加一列:Alter Table yourTable Add Old_Enough Bit Not Null Default 0
  • 创建一个定期运行(例如每小时一次)并运行Update yourTable Set Old_Enough = 1 Where Old_Enough = 0 And DateAdd(Day, 2, yourCreationDateColumn) < GetDate()
  • 的作业
  • 创建一个包含Select ... From yourTable Where Old_Enough = 1的索引视图
  • 复制索引视图
相关问题