1

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

我在做什么:

  • 向数据库中添加新表
  • 标记要复制的新表(使用SP_AddMergeArticle
  • 改变一个视图(它已经是复制内容的一部分)被更新以包括来自这个新表的字段(它连接到现有视图中的表)。类似地更新存储过程。

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

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

更大的问题:我在一个事务中运行一个数据库脚本列表,作为一个更大进程的一部分。快照代理不能在事务期间运行,如果我中断事务(例如,通过在多个事务中运行脚本),我将失去在失败时回滚更改的能力。

有没有人有什么建议?似乎我必须遗漏一些明显的东西,因为我不明白为什么视图/存储过程的更改无论如何都不会复制,无论新表发生了什么。

4

2 回答 2

1

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

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

于 2010-06-03T10:27:41.400 回答
0

我离开时的快速提示:

检查联机丛书帮助中的疑难解答(复制) ...

在每个系统上验证您的安全性

使用一些工具来帮助查看正在发生的事情

在每个盒子上打开 Profiler Trace

于 2010-06-03T00:37:07.983 回答