次の方法で共有


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

適用対象: SQL Server

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

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

  1. 要求時に実行する Transact-SQL スクリプトを作成およびテストします。

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

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

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

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

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