添加表时 SQL2008 合并复制无法更新依赖项

发布于 2024-09-02 22:44:54 字数 633 浏览 7 评论 0原文

设置:现有的 SQL2008 合并复制方案。大型服务器数据库,包括视图和存储过程,被复制到客户端计算机。

我正在做的事情:

  • 向数据库添加一个新表,
  • 将新表标记为要复制(使用SP_AddMergeArticle),
  • 更改视图(已经是复制内容的一部分)已更新以包含此新表(已连接到现有视图中的表)中的字段。存储过程的更新方式类似。

问题:表被复制到客户端计算机,但视图未更新。存储过程也不会更新。

无用的解决方法:如果我在调用 SP_AddMergeArticle 之后和更新视图/SP之前运行快照代理,视图和存储过程更改正确复制到客户端。

更大的问题:我正在事务中运行数据库脚本列表,作为更大流程的一部分。快照代理无法在事务期间运行,如果我中断事务(例如,通过在多个事务中运行脚本),我将无法在出现故障时回滚更改。

有人有什么建议吗?看来我一定错过了一些明显的东西,因为我不明白为什么对视图/存储过程的更改无论如何都不会被复制,无论新表发生了什么。

Setup: an existing SQL2008 merge replication scenario. A large server database, including views and stored procs, being replicated to client machines.

What I'm doing:

  • adding a new table to the database
  • mark the new table for replication (using SP_AddMergeArticle)
  • alter a view (which is already part of the replicated content) is updated to include fields from this new table (which is joined to the tables in the existing view). A stored procedure is similarly updated.

The problem: the table gets replicated to client machines, but the view is not updated. The stored procedure is also not updated.

Non-useful workaround: if I run the snapshot agent after calling SP_AddMergeArticle and before updating the view/SP, both the view and the stored procedure changes correctly replicate to the client.

The bigger problem: I'm running a list of database scripts in a transaction, as part of a larger process. The snapshot agent can't be run during a transaction, and if I interrupt the transaction (e.g. by running the scripts in multiple transactions), I lose the ability to roll back the changes should something fail.

Does anyone have any suggestions? It seems like I must be missing something obvious, because I don't see why the changes to the view/sproc wouldn't be replicating anyway, regardless of what's going on with the new table.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

白日梦 2024-09-09 22:44:54

您是否使用 ALTER VIEW | 进行架构更改?改变程序? “对发布数据库进行架构更改”一文暗示这是必要的,并且使用 Management Studio 是不可能的。

本文详细讨论了架构更改,特别是关于合并复制和与兼容性级别有关的架构更改的部分。

Are you making schema changes using ALTER VIEW | ALTER PROCEDURE? The article "Making Schema Changes on Publication databases" implies this is necessary, and that using Management Studio is not possible.

The article discusses schema changes in detail, in particular a section on Merge Replication and schema changes with regards to compatibility levels.

小伙你站住 2024-09-09 22:44:54

在我离开时,简单提示一下:

检查联机丛书帮助中的故障排除(复制)...

验证每个系统上的安全性,

使用一些工具来帮助了解哪些内容打开

每个盒子上的 Profiler Trace

Just Quick Hints as I leave:

Check Troubleshooting (Replication) in the Books Online help...

verify your security on each system

use some of the tools to help see what is happening

turn on the Profiler Trace on each box

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文