同事手上有一台測試性質的SQL Server,經手褻玩的人頗多,又常進行一些SQL測試。交往複雜之下,這種香爐型的環境一旦發起狠來,往往讓射手們為之膽寒。

今天遇到的狀況是同事要為機器改名(是想重新做人嗎? 呵),SQL機器改名SOP中應執行sp_dropserver/sp_addserver的步驟,結果不幸地:

sp_dropserver 'TESTSQLSVR'

Msg 20582, Level 16, State 1, Procedure sp_MSrepl_check_server, Line 31
Cannot drop server 'TESTSQLSVR' because it is used as a Publisher in replication.

由訊息來看,應與先前測試過複寫功能有關,但用SSMS檢查,該主機已經有沒有任何複寫設定。我推測可能是複寫設定操作步驟不正確,加上SQL Server防呆不佳,以至SQL Server上有一些管理UI看不出來的殘留設定在作怪。

查詢找到一篇類似的說明,幾經研究,最後我用了文中提到的險招,先select * from msdb.dbo.MSdistpublishers確認有一筆以TESTSQLSVR為名的資料,再下指令UPDATE將該筆資料的name更名為TESTSQLSVR_,接著,sp_dropserver就成功囉! 鋸箭完成,收隊回家。


Comments

Be the first to post a comment

Post a comment