0

我有一个A插入数据的主 SQL Server。感兴趣的表A如下所示:

Name|Entry Time|Exit Time|Comments

从这个主表中,我想在另一台服务器上构建一个表B,其中包含相同的数据,A但使用WHERE子句 ie带有一些额外的过滤器WHERE Name IN ('John', 'Adam', 'Jack')

我不确定这叫什么,以及 SQL Server 本身是否支持它(或者我应该设置一个脚本来实现这一点)。复制意味着复制整个数据,但有人可以告诉我我在寻找什么以及如何实现这一目标吗?

4

2 回答 2

1

SQL Server 的事务复制支持过滤数据的能力。事实上,当您设置复制时,有一个“添加过滤器”对话框(假设您使用的是 SSMS)允许您创建过滤器(Where 子句)。

您可以在此处了解更多信息。

于 2012-06-18T00:48:06.347 回答
1

事务复制确实支持文章过滤器,但老实说 - 我从来没有为带有过滤器的文章设置它。本文可能对联机丛书中的该主题有所帮助。

如果它只有一个表和/或您不愿意进行复制,您可能希望使用触发器填充远程表(如果数据仅在插入时写入表并且从不更新,这显然会更容易)。但是您需要设置逻辑来处理远程服务器关闭的情况。

如果您不需要服务器 B 持续更新,第三种解决方案可能是可行的 - 您可以使用作业每隔n分钟手动移动数据 - 使用外部联接/合并或完全换出匹配的数据集过滤器(我在这种情况下使用了影子模式,以尽量减少这对服务器 B 的读者的影响 -有关更多详细信息,请参阅此 dba.stackexchange 答案)。

于 2012-06-18T00:50:18.527 回答