删除SQL Server复制订阅

问题描述:

我的计算机上有一个复制问题,我遇到了不存在的SSMS中显示的大量订阅。我曾尝试使用SSMS中的UI删除它们,并且还使用了一些T-SQL ......但没有运气。这些出版物甚至不存在(它们在同一台机器上)。删除SQL Server复制订阅

关于如何删除它们的任何想法?

更多的信息: 这是我似乎在有3订阅的情况下(SSMS不会让我看,因为'他们不存在')。


enter image description here

+2

你试过了什么T-SQL?您是否尝试过['sp_removedbreplication']的核选项(http://msdn.microsoft.com/zh-cn/library/ms188734.aspx)? – 2012-02-20 13:11:35

+0

我只是试过,但它也没有工作。我刚刚用一张图片更新了帖子,向您展示了SSMS可以看到的内容!我的盒子是PC007-W7,这是订阅和出版物的位置,所以我不知道如何摆脱不存在的出版物订阅! – Penfold 2012-02-20 13:37:38

+0

哦...我刚刚重新启动我的SQL Server并运行sp_removedbreplication似乎已经完成了!谢谢你,你能回答我的问题吗? – Penfold 2012-02-20 13:39:42

您可能必须在分发数据库中的一些孤立的元数据。如果您不再发布任何数据,则可能需要尝试Disabling Publishing and Distribution删除孤立的出版物和订阅。

+0

这是我最后修复它的原因,因为我有一点点时间,所以我没有安装复制并删除了分发数据库,​​现在所有的作品都是!! :) – Penfold 2012-02-21 09:39:19

我觉得很奇怪,sp_removedbreplication没有工作......也许尝试sp_dropsubscription,并包括ignore_distributor参数:

declare @yourServer sysname 
set @yourServer = @@servername 

exec sp_dropsubscription 
    @publication='UD-ForCMS', 
    @article='all', 
    @[email protected], 
    @destination_db='CMS', 
    @ignore_distributor=1 

我有时会发现,通过复制创建的系统视图对象可以是左悬。停止手动重建复制。我的解决方案是手动删除系统视图syncobj。我推荐在删除发布属性之前始终删除订阅和发布,因为我发现项目留下来留下长期问题。

消息2714,级别16,状态3:已存在名为在数据库中 'syncobj_0x3437324238353830' 的对象。消息21745,级别16, 状态1,过程sp_MSrepl_articleview,行272无法生成 过滤器视图或过程。验证是否可以将为sp_addarticle的参数 @filter_clause指定的值添加到SELECT语句的WHERE 子句中以生成有效查询。消息3931,级别 16,状态1,过程sp_MSrepl_articleview,行401当前的 事务不能提交并且不能回滚到 保存点。回滚整个交易。警告:代理作业的分发 已隐式创建,并将在SQL代理服务帐户的SQL 下运行。