KB3184227 - 從 SQL Server 的出版物中移除文章之後,發生「遠端伺服器 ' (null) ' 不存在」錯誤

套用到
SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Enterprise Core - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use)

症狀

假設您在 SQL Server 2014 或 2016 中使用 sp_addpublication 預存程序建立異動出版物,並將 @allow_drop 屬性設定為 True。 刪除出版物中發佈的資料表並手動從出版物中刪除過時的文章後,您可能會收到類似於以下內容的錯誤訊息:

注意

遠端伺服器 “ (null) ” 不存在。

例如,這個問題會在下列案例中發生:

  • 您在異動出版物中發佈資料表,然後將 @allow\_drop 屬性設定為 True。

  • 您移除已發佈的資料表。

  • 在記錄讀取器代理程式處理與 drop table 命令相關的記錄之前,您可以使用下列預存程序之一來清除過時的文件:

    • sp_MSdropobsoletearticle
    • sp_droparticle
    • sp_droppublication

在此情況下,下列錯誤訊息會記錄在詳細記錄中:

注意

狀態:0,代碼:1007,文字:'該程序無法在 'SQL_SERVER_INSTANCE' 上執行 'sp_MSadd_replcmds'。'。
處理程序無法在 'SQL_SERVER_INSTANCE' 上執行 'sp_MSadd_replcmds'。
Repl 代理程式狀態:6
狀態:0,代碼:1007,文字:「遠端伺服器「 (null) 」不存在,或尚未指定為有效的發行者,或您可能沒有查看可用發行者的權限。」。
狀態:4,代碼:6001,文字:「『命令載入程式』的背景執行緒正在結束。」。
狀態:0,代碼:22020,文字:'批次未提交給經銷商。'。
狀態:0,代碼:22037,文字:「最後一個步驟未記錄任何訊息!」。

附註: (DROP TABLE DDL 支援已於 SQL Server 2014 Service Pack 2 中新增 Drop 表格 DDL) 。 如需有關放置表支援的資訊,請參閱下列 Microsoft 知識庫文章:

3170123 針對 SQL Server 2014 異動複寫中包含的文章,支援 DROP TABLE DDL

解決方式

此問題已在下列 SQL Server 累積更新中修正:

SQL Server 2014 Service Pack 2 的累積更新 1
        
         SQL Server 2016 的累積更新 2 

關於 SQL Server 的累積更新

SQL Server 的每個新累積更新都包含所有 Hotfix 和先前累積更新的所有安全性修正程式。 查看 SQL Server 的最新累積更新:

適用於 SQL Server 2014 的最新累積更新
        
         適用於 SQL Server 2016 的最新累積更新
        
      

狀態

Microsoft 已確認這是「適用對象」一節中列出的 Microsoft 產品中的問題。

參考資料

瞭解 Microsoft 用來說明軟體更新的 術語 。