SQL Server删除distribution数据库二

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

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

SQL Server删除distribution数据库二_第1张图片

 

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

SQL Server删除distribution数据库二_第2张图片

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

 

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

SQL Server删除distribution数据库二_第3张图片

 

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

SQL Server删除distribution数据库二_第4张图片

 

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

USE master;
go
EXEC sp_removedbreplication 'A'

SQL Server删除distribution数据库二_第5张图片


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

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

你可能感兴趣的:(SQL Server删除distribution数据库二)