你的位置:首页 > 数据库

[数据库]SQL Server删除distribution数据库二


    以前总结过一遍博文SQL Server删除distribution数据库,里面介绍了如何删除distribution数据库。今天介绍一个删除distribution的特殊案例,

    在这之前,我不知道这个服务器上的Replication被如何折腾过,在SSMS管理界面的Local Publications和Local Subscriptions里面已经看不到任何关于发布、订阅相关的内容。

clipboard

 

但是使用命令EXEC sp_helpdistpublisher会看到使用分发服务器的发布服务器的属性

clipboard[1]

下面SQL的参数@publisher对应上面name的值,此处用xxxx替代

 

USE master;
 
GO
 
exec sp_dropdistpublisher  @publisher = 'xxxx'


clipboard[2]

 

我们通过下面SQL,发现其在数据库(暂且用A表示)A上面做过发布,

clipboard[3]

 

执行下面SQL时,报错误,因为这个数据库上有一个数据库级别的触发器safety,禁止任何DDL操作,首先禁用这个触发器后,执行下面SQL,就会将下面截图部分触发器全部清理。

USE master;
go
EXEC sp_removedbreplication 'A'


clipboard[4]


然后按照SQL Server删除distribution数据库里面步骤,依葫芦画瓢,执行下面SQL,就能轻轻松松的将distribution数据库删除。

USE ArtDB;
GO
exec sp_dropdistpublisher  @publisher = 'xxx'
 
 
USE master;
GO
 
exec sp_dropdistributiondb @database = N'distribution'
GO