允许在合并复制中不跟踪单个列

时间:2012-02-23 13:45:27

标签: sql-server sql-server-2008 merge-replication

使用合并复制,我有一个表,大部分都是正常同步的。但是,该表包含一列用于存储临时客户端数据,这些数据仅在客户端上进行有意义的编辑和使用,并且我不希望将其复制回服务器。例如:

CREATE TABLE MyTable (
    ID           UNIQUEIDENTIFIER NOT NULL PRIMARY KEY,
    Name         NVARCHAR(200),
    ClientCode   NVARCHAR(100)
)

在这种情况下,即使订阅者对表中的ClientCode列进行了更改,我也不希望这些更改返回到服务器。合并复制是否提供了实现此目的的任何方法?

我可以依赖的另一种方法是发布一个附加表,并将其配置为“仅下载到订阅者,允许订阅者更改”,然后在该表中引用MyTable.ID,使用ClientCode。但如果我不是绝对需要,我宁愿不必发表额外的表格。

谢谢,

-Dan

1 个答案:

答案 0 :(得分:0)

是的,在发布中创建文章时,请不要包含此列。然后,创建一个脚本,将此列添加回表,并在发布属性中的快照下,指定在应用快照后执行此脚本。

这意味着该列将存在于发布者和订阅者上,但复制将完全忽略该列。当然,如果要忽略的列可以为空,则只能使用此技术。