Sql server 计算列的复制问题
因此,情况是有两个服务器Sql server 计算列的复制问题,sql-server,sql-server-2008,database-replication,Sql Server,Sql Server 2008,Database Replication,因此,情况是有两个服务器pub_server(发布服务器)和sub_server(订阅服务器)。 pub_服务器上有两个数据库:db1和db2 db1中存在一个表xyz_tbl,它被复制(事务性)到sub_服务器(发布者名称:publisher_old)。 我的任务是从publisher\u old中删除订阅和文章,并在db2中使用相同的文章xyz\u tbl和相同的订阅服务器sub\u服务器创建一个新的发布服务器publisher\u new 现在问题来了:xyz_tbl有一个计算列。因此,当
pub_server
(发布服务器)和sub_server
(订阅服务器)。
pub_服务器上有两个数据库:db1
和db2
db1中存在一个表xyz_tbl
,它被复制(事务性)到sub_服务器
(发布者名称:publisher_old
)。
我的任务是从publisher\u old
中删除订阅和文章,并在db2中使用相同的文章xyz\u tbl
和相同的订阅服务器sub\u服务器创建一个新的发布服务器publisher\u new
现在问题来了:xyz_tbl
有一个计算列。因此,当我为publisher\u new
执行脚本时,复制监视器中出现错误
错误:无法修改列“column\u name”,因为它是计算列或是联合运算符的结果
我正在使用@sync\u type=“仅复制支持”
,因为订阅服务器上已经存在表(来自发布服务器\u old
)。那么为什么分发服务器试图在订阅服务器上执行插入操作,这会产生上述错误
如果分发服务器正在尝试插入,那么复制是如何从db1
工作的,即publisher\u old
如何在复制中处理计算列。我找不到任何答案
请帮忙 大多数工作对于计算列不可用。这就是更新。
我建议不要复制计算列。您可以在复制数据库中再次计算它
另一种方法是使计算列成为实际列,然后进行复制
若要插入到计算列,则可以使kind属性等于PersistantReadOnly 但如果复制中持久化的计算列未被复制为其他对象的定义复制失败,并且如果添加,则应在bcp之前删除该列。最后,您只能通过在发布服务器上创建(dop和recreate)和复制bit将它们添加到订阅服务器上,然后您可能会遇到FK和索引的问题。如何设置PersistantReadOnly属性?