sp_addscriptexec (Transact-SQL)
SQL スクリプト (.sql file) をパブリケーションのすべてのサブスクライバーにポストします。 このストアド プロシージャは、パブリッシャー側でパブリケーション データベースについて実行されます。
構文
sp_addscriptexec [ @publication = ] publication
[ , [ @scriptfile = ] 'scriptfile' ]
[ , [ @skiperror = ] 'skiperror' ]
[ , [ @publisher = ] 'publisher' ]
引数
[ @publication= ] 'publication'
パブリケーションの名前です。 publication のデータ型は sysname で、既定値はありません。[ @scriptfile= ] 'scriptfile'
SQL スクリプト ファイルへの完全なパスを指定します。 scriptfile のデータ型は nvarchar(4000) で、既定値はありません。[ @skiperror= ] 'skiperror'
スクリプト処理の最中にエラーが発生したときに、ディストリビューション エージェントまたはマージ エージェントを停止させる必要があるかどうかを示します。 SkipError のデータ型は bit で、既定値は 0 です。0 = エージェントは停止します。
1 = エージェントはスクリプトを続行し、エラーを無視します。
[ @publisher= ] 'publisher'
Microsoft SQL Server 以外のパブリッシャーを指定します。 publisher のデータ型は sysname で、既定値は NULL です。注 SQL Server パブリッシャーからパブリッシュする場合は、publisher は使用しないでください。
リターン コードの値
0 (成功) または 1 (失敗)
説明
sp_addscriptexec は、トランザクション レプリケーションおよびマージ レプリケーションで使用します。
sp_addscriptexec は、スナップショット レプリケーションでは使用しません。
sp_addscriptexec を使用するには、SQL Server サービス アカウントが、スナップショットの場所に対しては読み取りおよび書き込み権限を、スクリプトが格納されるすべての場所に対しては読み取り権限を、それぞれ持っていることが必要です。
sqlcmd utility はサブスクライバーでスクリプトを実行するために使用され、スクリプトは、サブスクリプション データベースに接続する際にディストリビューション エージェントまたはマージ エージェントにより使用されるセキュリティ コンテキストで実行されます。 以前のバージョンの SQL Server でエージェントが実行される場合は、sqlcmd ではなく osql utility が使用されます。
sp_addscriptexec は、サブスクライバーにスクリプトを適用するときに便利です。sqlcmd を使用してスクリプトの内容をサブスクライバーに適用します。 ただし、サブスクライバー構成は異なることがあるので、パブリッシャーにポストする前にテストしたスクリプトでも、サブスクライバーでエラーが生じる可能性があります。 skiperror により、ディストリビューション エージェントまたはマージ エージェントは、エラーを無視して続行することができます。 sp_addscriptexec を実行する前に、sqlcmd を使用してスクリプトをテストしてください。
注 |
---|
スキップされたエラーは、参考情報として、引き続きエージェント履歴に記録されます。 |
スナップショット配信に FTP を使用してパブリケーションのスクリプト ファイルをポストするための、sp_addscriptexec の使用は、Microsoft SQL Server サブスクライバーに対してのみサポートされます。
権限
sp_addscriptexec を実行できるのは、sysadmin 固定サーバー ロールまたは db_owner 固定データベース ロールのメンバーだけです。
関連項目
タスク
同期中のスクリプトの実行 (レプリケーション Transact-SQL プログラミング)
参照
システム ストアド プロシージャ (Transact-SQL)