次の方法で共有


同期中のスクリプトの実行 (レプリケーション Transact-SQL プログラミング)

レプリケーションでは、トランザクション パブリケーションおよびマージ パブリケーションのサブスクライバーに対し、要求時にスクリプトを実行できます。 スクリプトはレプリケーションの作業ディレクトリにコピーされ、サブスクライバー側で sqlcmd を使って適用されます。 トランザクション パブリケーションのサブスクリプションに対してスクリプトを適用しているときにエラーが発生した場合、既定では、ディストリビューション エージェントの実行が停止します。 レプリケーション ストアド プロシージャを使用してプログラムで実行する Transact-SQL スクリプトを指定できます。

スナップショット、トランザクション、マージ パブリケーションのすべてのサブスクライバーに対して実行するスクリプトを指定するには

  1. 必要に応じて実行される Transact-SQL スクリプトを作成してテストします。

  2. スクリプト ファイルを、パブリケーションのスナップショット エージェントがアクセスできる場所に保存します。

  3. パブリッシャー側のパブリケーション データベースで、 sp_addscriptexec (Transact-SQL) を実行します。 @publicationを指定し、手順 2. で作成したスクリプト ファイル名を完全 UNC パスで @scriptfileに指定して、さらに、次のいずれかの値を @skiperrorに指定します。

    • 0 - エラーが発生した場合、エージェントがスクリプトの実行を停止します。

    • 1 - エラーが発生した場合、エージェントによってエラー ログが記録され、スクリプトの実行が継続されます。

  4. 指定したスクリプトは、エージェントが次にサブスクリプションを同期するときに、各サブスクライバーで実行されます。

参照

データの同期