Sql server 我是否可以/应该为SQL Server中的合并复制编写系统表脚本

Sql server 我是否可以/应该为SQL Server中的合并复制编写系统表脚本,sql-server,replication,merge-replication,Sql Server,Replication,Merge Replication,我刚刚开始了一项新工作,作为系统上唯一的开发人员。首先,我想建立一个与实时系统相同的开发系统,但没有任何数据。然后我想用测试数据填充它。 所以我做的第一件事就是编写数据库脚本,然后在我自己的机器上重新创建数据库。但是,当调用存储过程时,我遇到了一个问题。我得到的错误消息是“无效的对象名'dbo.sysmergearticles”。 我相信这与合并复制有关,但这是一个我还不知道的领域。现在我只想让一个测试系统启动并运行。 如果我查看实时系统上的系统表,“dbo.sysmergearticles”以

我刚刚开始了一项新工作,作为系统上唯一的开发人员。首先,我想建立一个与实时系统相同的开发系统,但没有任何数据。然后我想用测试数据填充它。 所以我做的第一件事就是编写数据库脚本,然后在我自己的机器上重新创建数据库。但是,当调用存储过程时,我遇到了一个问题。我得到的错误消息是“无效的对象名'dbo.sysmergearticles”。 我相信这与合并复制有关,但这是一个我还不知道的领域。现在我只想让一个测试系统启动并运行。
如果我查看实时系统上的系统表,“dbo.sysmergearticles”以及大量其他表。是否有一种方法可以为这些对象编写脚本,以便使用脚本创建测试系统?

您是正确的,实时系统上存在sysmergearticles表明它参与了合并复制,或者从以前的合并发布或订阅中孤立了元数据

在实时系统上,在SSMS的对象资源管理器中,展开复制节点和发布/订阅节点。您需要确定活动系统是否涉及活动合并拓扑,或者合并系统表是否是以前拓扑中的孤立项。您可以运行以下查询来确定这一点:

select * 
from sys.databases
where is_published = 1 or is_merge_published = 1 or is_subscribed = 1

如果活动系统涉及活动拓扑,则需要确定它是发布服务器还是订阅服务器。在“对象资源管理器”->“生成脚本”中,通过右键单击发布或订阅,可以从中编写发布和订阅的脚本。。。有关脚本复制的详细信息,请参见。然后,您可以在测试系统上重新创建拓扑。

Brandon。这是一个绝妙的回答!告诉我我需要做什么。我已经运行了这个查询,它只返回了包含系统表的数据库,所以我相信我可以安全地完全删除复制(我使用EXEC sp_removedbreapplication“MyDatabase”完成了此操作),非常感谢