2012-12-07 34 views
0

我剛開始一個新工作,作爲系統上唯一的開發人員。首先,我想建立一個與實時系統相同但沒有任何數據的開發系統。然後我想用測試數據填充它。 所以我做的第一件事就是腳本化數據庫並在我自己的機器上重新創建數據庫。但是,當我調用存儲過程時,我遇到了問題。我得到的錯誤消息是「無效的對象名稱'dbo.sysmergearticles」。 我相信這是與合併複製有關的事情,但那是一個我一無所知的領域。現在我只想讓測試系統運行起來。 如果我查看實時系統上的系統表,則會出現'dbo.sysmergearticles'以及其他整個表的其他表。有沒有一種方法可以編寫這些對象的腳本,以便我可以使用腳本創建測試系統?我可以/應該在SQL Server中編寫合併複製的系統表

回答

1

您是正確的,實時系統上sysmergearticles的存在表明它參與了合併複製,或者具有來自先前合併發佈或訂閱的孤立元數據。

在實時系統上,在SSMS的對象資源管理器中,展開復制節點和發佈/預訂節點。您需要確定實時系統是否包含在活動的合併拓撲中,或者合併系統表是否爲先前拓撲中的孤立。如果直播系統參與的活動拓撲,那麼你將要確定它是否是一個發佈者或訂閱

select * 
from sys.databases 
where is_published = 1 or is_merge_published = 1 or is_subscribed = 1 

:您可以運行下面的查詢,以確定這一點。在那裏,您可以通過右鍵單擊對象資源管理器中的發佈或訂閱來編寫發佈和訂閱(S) - >生成腳本...有關腳本複製的詳細信息,請參見Scripting Replication。然後,您可以在測試系統上重新創建拓撲。

+0

布蘭登。這是一個很好的答案!告訴我正是我需要做的。我已經運行查詢,它只返回包含系統表的數據庫,所以我相信我可以安全地完全去除複製 - (我使用EXEC sp_removedbreplication'MyDatabase')非常感謝 – Colin