作为系统上唯一的开发人员,我刚刚开始了一份新工作。一开始我想建立一个和live系统一样的开发系统,但是没有任何数据。然后我想用测试数据填充它。所以我做的第一件事就是编写数据库脚本并在我自己的机器上重新创建数据库。但是,当我调用存储过程时遇到问题。我收到的错误消息是“无效的对象名称'dbo.sysmergearticles”。我相信这与合并复制有关,但这是一个我还一无所知的领域。现在我只想让测试系统启动并运行。如果我查看实时系统上的系统表,“dbo.sysmergearticles”就在那里,还有一大堆其他表。有没有办法可以编写这些对象的脚本,以便我可以使用脚本创建测试系统?
问问题
543 次
1 回答
1
您是对的,实时系统上存在 sysmergearticles 表明它参与了合并复制,或者具有来自先前合并发布或订阅的孤立元数据。
在实时系统上,在 SSMS 的对象资源管理器中,展开复制节点和发布/订阅节点。您将需要确定活动系统是否参与活动的合并拓扑,或者合并系统表是否是先前拓扑的孤立表。您可以运行以下查询来确定这一点:
select *
from sys.databases
where is_published = 1 or is_merge_published = 1 or is_subscribed = 1
如果活动系统涉及活动拓扑,那么您将需要确定它是发布者还是订阅者。从那里,您可以通过在对象资源管理器中右键单击发布或订阅来编写发布和订阅的脚本 -> 生成脚本...关于脚本复制的详细信息可以在Scripting Replication中找到。然后,您可以在测试系统上重新创建拓扑。
于 2012-12-07T17:33:56.837 回答