1

我设置了 SQL Server 复制来复制会计应用程序的多个表。它使用带有初始快照的事务复制。大约有100个订阅者。

我试图找出更新复制表的最佳方法。现在,当我们进行更新时,最终用户必须运行一个实用程序,通过将数据移动到临时表、删除表、然后根据新表定义重新创建表来升级表。问题是无法删除复制的表。

到目前为止,我已经研究并尝试了一些事情。从我发现为了删除/创建复制表必须删除文章,但只有在删除所有订阅时才能删除它。这意味着为了升级表,我必须删除所有文章和订阅,然后完全重新创建发布。

这是一个痛苦,因为这将需要相当多的重构。此外,主要关注的是对所有 100 个订阅者重新进行复制所需的时间。所以我想知道是否有更好的方法来处理删除/创建复制表。

谢谢, 马科莱特

4

1 回答 1

2

我会质疑为什么您要复制一个如此频繁地更改架构的表。也就是说,你有几个选择。

  1. 以与复制兼容的方式更改表。请参阅对发布数据库进行架构更改
  2. 如果这不可行,请使用 sp_dropsubscription 从文章中删除订阅者,并使用 sp_droparticle 删除文章。更改表,使用 sp_addarticle 重新添加文章,使用 sp_addsubscription 重新添加订阅者,然后运行快照代理以创建新添加文章的快照。
于 2014-03-04T22:55:37.713 回答