以前總結過一遍博文SQL Server刪除distribution資料庫,裡面介紹瞭如何刪除distribution資料庫。今天介紹一個刪除distribution的特殊案例, 在這之前,我不知道這個伺服器上的Replication被如何折騰過,在SSMS管理界面的Local Publication... ...
以前總結過一遍博文SQL Server刪除distribution資料庫,裡面介紹瞭如何刪除distribution資料庫。今天介紹一個刪除distribution的特殊案例,
在這之前,我不知道這個伺服器上的Replication被如何折騰過,在SSMS管理界面的Local Publications和Local Subscriptions裡面已經看不到任何關於發佈、訂閱相關的內容。
但是使用命令EXEC sp_helpdistpublisher會看到使用分發伺服器的發佈伺服器的屬性
下麵SQL的參數@publisher對應上面name的值,此處用xxxx替代
USE master;
GO
exec sp_dropdistpublisher @publisher = 'xxxx'
我們通過下麵SQL,發現其在資料庫(暫且用A表示)A上面做過發佈,
執行下麵SQL時,報錯誤,因為這個資料庫上有一個資料庫級別的觸發器safety,禁止任何DDL操作,首先禁用這個觸發器後,執行下麵SQL,就會將下麵截圖部分觸發器全部清理。
USE master;
go
EXEC sp_removedbreplication 'A'
然後按照SQL Server刪除distribution資料庫裡面步驟,依葫蘆畫瓢,執行下麵SQL,就能輕輕鬆松的將distribution資料庫刪除。
USE ArtDB;
GO
exec sp_dropdistpublisher @publisher = 'xxx'
USE master;
GO
exec sp_dropdistributiondb @database = N'distribution'
GO