sp_addscriptexec (Transact-SQL)

適用対象:SQL Server

パブリケーションのすべてのサブスクライバーに Transact-SQL スクリプト (.sql ファイル) を投稿します。 このストアド プロシージャは、パブリッシャー側のパブリケーション データベースで実行されます。

Transact-SQL 構文表記規則

構文

sp_addscriptexec
    [ @publication = ] N'publication'
    , [ @scriptfile = ] N'scriptfile'
    [ , [ @skiperror = ] skiperror ]
    [ , [ @publisher = ] N'publisher' ]
[ ; ]

引数

[ @publication = ] N'publication'

出版物の名前。 @publicationは sysname で、既定値はありません。

[ @scriptfile = ] N'scriptfile'

SQL スクリプト ファイルへの完全なパス。 @scriptfileは nvarchar(4000) で、既定値はありません。

[ @skiperror = ] skiperror

スクリプト処理中にエラーが発生したときに、ディストリビューション エージェントまたはマージ エージェントを停止するかどうかを示します。 @skiperrorはビットで、既定値は 0.

  • 0 = エージェントが停止します。
  • 1 = エージェントはスクリプトを続行し、エラーを無視します。

[ @publisher = ] N'publisher'

SQL Server 以外のパブリッシャーを指定します。 @publisherは sysname で、既定値は NULL.

SQL Server パブリッシャーから発行する場合、@publisherは使用しないでください。

リターン コードの値

0 (成功) または 1 (失敗)。

解説

sp_addscriptexec は、トランザクション レプリケーションとマージ レプリケーションで使用されます。

sp_addscriptexecは、スナップショットレプリケーションには使用されません。

使用sp_addscriptexecするには、SQL Server サービス アカウントに、スナップショットの場所に対する読み取りと書き込みのアクセス許可と、スクリプトが格納されている場所に対する読み取りアクセス許可が必要です。

sqlcmd ユーティリティはサブスクライバーでスクリプトを実行するために使用され、スクリプトは、サブスクリプション データベースに接続するときにディストリビューション エージェントまたはマージ エージェントによって使用されるセキュリティ コンテキストで実行されます。 エージェントが以前のバージョンの SQL Server で実行されている場合、sqlcmd ユーティリティの代わりに osql ユーティリティ使用されます。

sp_addscriptexecは、サブスクライバーにスクリプトを適用する場合に役立ち、sqlcmd ユーティリティ使用してスクリプトの内容をサブスクライバーに適用します。 ただし、サブスクライバーの構成は異なる可能性があるため、パブリッシャーに投稿する前にテストされたスクリプトによって、サブスクライバーでエラーが発生する可能性があります。 @skiperrorでは、エラーを無視して続行ディストリビューション エージェントまたはマージ エージェントできます。 sqlcmd ユーティリティ使用して、スクリプトを実行sp_addscriptexecする前にテストします。

Note

スキップされたエラーは引き続きエージェント履歴に記録され、参照用に記録されます。

スナップショット配信に FTP を使用してパブリケーションのスクリプト ファイルをポストする方法sp_addscriptexecは、SQL Server サブスクライバーでのみサポートされます。

アクセス許可

sysadmin 固定サーバー ロールまたは固定データベース ロールdb_ownerメンバーのみが実行sp_addscriptexecできます。