0

システムの唯一の開発者として新しい仕事を始めたばかりです。まず、ライブ システムと同じであるがデータのない開発システムをセットアップしたいと考えました。次に、テストデータを入力します。そこで私が最初にしたことは、データベースのスクリプトを作成し、自分のマシンでデータベースを再作成することでした。ただし、ストアド プロシージャを呼び出すと問題が発生します。表示されるエラー メッセージは、「無効なオブジェクト名 'dbo.sysmergearticles」です。これはマージ レプリケーションと関係があると思いますが、それについてはまだ何も知りません。今のところ、テストシステムを稼働させたいだけです。稼働中のシステムのシステム テーブルを調べると、「dbo.sysmergearticles」があり、他のテーブルがすべてロードされています。スクリプトを使用してテスト システムを作成できるように、これらのオブジェクトをスクリプト化する方法はありますか?

4

1 に答える 1

1

正解です。ライブシステムにsysmergearticleが存在する場合は、それがマージレプリケーションに関与しているか、以前のマージパブリケーションまたはサブスクリプションからのメタデータが孤立していることを示しています。

ライブシステムのSSMSのオブジェクトエクスプローラーで、レプリケーションノードとパブリケーション/サブスクリプションノードを展開します。ライブシステムがアクティブなマージトポロジに関与しているかどうか、またはマージシステムテーブルが以前のトポロジから孤立しているかどうかを判断する必要があります。次のクエリを実行して、これを判別できます。

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

ライブシステムがアクティブなトポロジに関与している場合は、それがパブリッシャーかサブスクライバーかを判断する必要があります。そこから、オブジェクトエクスプローラー-> [スクリプトの生成...]でパブリケーションまたはサブスクリプションを右クリックして、パブリケーションとサブスクリプションのスクリプトを作成できます。スクリプトレプリケーションの詳細については、スクリプトレプリケーションを参照してください。次に、テストシステムでトポロジを再作成できます。

于 2012-12-07T17:33:56.837 に答える