2016-04-21 214 views
2

所以情况是有两个服务器pub_server(发行人)和sub_server(订户)。 pub_server上有两个数据库:db1db2复制问题与计算列

在db1中存在一个表xyz_tbl,该表被复制(交易)到sub_server(发布者名称:publisher_old)。 我的任务是从publisher_old中删除订阅和文章,并在db2上创建一个新的发布者publisher_new,同一文章xyz_tbl和同一订阅者sub_server

现在这里是问题:xyz_tbl有一个计算列。所以当我执行脚本publisher_new时,我在复制监视器中出现错误。

错误:The column "column_name" cannot be modified because it is either a computed column or is the result of a UNION operator

我使用@sync_type="replication support only"因为表在用户已经存在(来自publisher_old)。那么为什么分销商试图在订户上执行插入操作会产生上述错误。

如果在所有分销商都试图插入,那么复制是如何从db1工作,即publisher_old

如何处理复制中的计算列。我找不到任何答案。

请帮忙!

回答

1

大部分作品都不适用于计算列。这类更新。 我建议不要复制计算列。您可以在复制数据库中再次计算它。

其他方法是让计算列成为实际列,然后复制。

如果要插入计算列,那么可以使kind属性等于PersistantReadOnly。