セットアップ:既存の SQL2008 マージ レプリケーション シナリオ。クライアント マシンにレプリケートされる、ビューやストアド プロシージャを含む大規模なサーバー データベース。
私がやっていること:
- データベースに新しいテーブルを追加する
- レプリケーション用の新しいテーブルをマークします (を使用
SP_AddMergeArticle
) - alter a view (すでにレプリケートされたコンテンツの一部です) は、この新しいテーブル (既存のビューのテーブルに結合されている) のフィールドを含めるように更新されます。ストアド プロシージャも同様に更新されます。
問題:テーブルはクライアント マシンに複製されますが、ビューは更新されません。ストアド プロシージャも更新されません。
役に立たない回避策:SP_AddMergeArticle
ビュー/SP を呼び出した後、更新する前にスナップショット エージェントを実行すると、ビューとストアド プロシージャの両方の変更がクライアントに正しくレプリケートされます。
より大きな問題:より大きなプロセスの一部として、トランザクションでデータベース スクリプトのリストを実行しています。トランザクション中にスナップショット エージェントを実行することはできず、トランザクションを中断すると (複数のトランザクションでスクリプトを実行するなど)、何かが失敗した場合に変更をロールバックできなくなります。
誰か提案はありますか?新しいテーブルで何が起こっているかに関係なく、ビュー/sprocへの変更がとにかく複製されない理由がわからないため、明らかな何かが欠けているに違いないようです。