徵狀
假設您使用 SQL Server 2014 或2016中的 [ sp_addpublication ] 儲存程式來建立事務性發佈,並將@allow_drop 屬性設定為 True。 在您除去出版物中發佈的資料表,並手動移除發佈中過時的文章之後,您可能會收到類似以下的錯誤訊息:
遠端伺服器 "(null)" 不存在。
例如,在下列情況中會發生這個問題:
-
您可以在事務發佈中發佈資料表,然後將 @allow_drop 屬性設定為 True。
-
您移除已發佈的資料表。
-
在記錄讀取器代理程式處理與 [刪除資料表] 命令相關的記錄之前,您可以使用下列其中一個儲存程式程式來清除過時的文章:
-
sp_MSdropobsoletearticle
-
sp_droparticle
-
sp_droppublication
-
在這種情況下,會在詳細記錄中記錄下列錯誤訊息:
狀態:0,代碼:1007,文字:「SQL_SERVER_INSTANCE' 上的進程無法執行 ' sp_MSadd_replcmds」。進程無法在 "SQL_SERVER_INSTANCE" 上執行 "sp_MSadd_replcmds"。複製代理程式狀態:6Status:0,程式碼:1007,文字:「遠端伺服器」(null)」不存在,或者尚未指定為有效的發行者,或者您可能不具備查看可用的發行者的許可權。狀態:4,程式碼:6001,文字:「命令載入程式的背景執行緒」正在退出。狀態:0,代碼:22020,文字: ' 批次未提交至分發伺服器。」。狀態:0,代碼:22037,文字:「最後一個步驟沒有記錄任何訊息!」。
注意: 已新增在 SQL Server 2014 Service Pack 2 中的 Drop table 支援(DROP TABLE DDL)。 如需 drop table 支援的相關資訊,請參閱 Microsoft 知識庫中的下列文章:
3170123 支援針對 SQL Server 2014 中的事務性複製所包含的文章刪除資料表 DDL
解決方案
此問題已在 SQL Server 的下列累積更新中修正:
Sql server 2014 Service Pack 2 的累積更新 1(適用于 sql server 2016)累積更新 2
每個新的 SQL Server 累計更新都包含所有的修正程式,以及前一個累積更新中所包含的所有安全性修正程式。 查看 SQL Server 的最新累計更新:
狀態
Microsoft 已確認<適用於>一節中所列的 Microsoft 產品確實有上述問題。
參考
瞭解 Microsoft 用於描述軟體更新的 術語 。