sp_register_custom_scripting (Transact-SQL)

適用対象:SQL Server

レプリケーションを使用すると、トランザクション レプリケーションで使用される 1 つ以上の既定のプロシージャを、ユーザー定義のカスタム ストアド プロシージャで置き換えることができます。 レプリケートされたテーブルにスキーマ変更が行われると、これらのストアド プロシージャは再作成されます。 sp_register_custom_scriptingは、新しいユーザー定義カスタム ストアド プロシージャの定義をスクリプト化するためにスキーマの変更が発生したときに実行されるストアド プロシージャまたは Transact-SQL スクリプト ファイルを登録します。 この新しいユーザー定義カスタム ストアド プロシージャには、テーブルに対する新しいスキーマを反映する必要があります。 sp_register_custom_scriptingはパブリッシャー側のパブリケーション データベースで実行され、スキーマの変更が発生すると、登録済みのスクリプト ファイルまたはストアド プロシージャがサブスクライバーで実行されます。

Transact-SQL 構文表記規則

構文

  
sp_register_custom_scripting [ @type  = ] 'type'  
    [ @value = ] 'value'   
    [ , [ @publication = ] 'publication' ]  
    [ , [ @article = ] 'article' ]  

引数

[ @type = ] 'type' 登録されているカスタム ストアド プロシージャまたはスクリプトの種類です。 typevarchar(16) で、既定値はなく、次のいずれかの値を指定できます。

Value 説明
insert 登録されたカスタム ストアド プロシージャは、IN Standard Edition RT ステートメントがレプリケートされるときに実行されます。
update 登録したカスタム ストアド プロシージャを、UPDATE ステートメントがレプリケートされるときに実行。
delete 登録したカスタム ストアド プロシージャを、DELETE ステートメントがレプリケートされるときに実行。
custom_script スクリプトは、データ定義言語 (DDL) トリガーの最後に実行されます。

[ @value = ] 'value' 登録されている Transact-SQL スクリプト ファイルへのストアド プロシージャまたは名前と完全修飾パスの名前。 nvarchar(1024)で、既定値はありません。

Note

パラメーターに NULL を指定すると、以前に登録されたスクリプトの登録が解除されます。これは、sp_unregister_custom_scriptingの実行と同じです。

値がcustom_script場合、Transact-SQL スクリプト ファイルの名前と完全なパスが必要です。 それ以外の場合、 は登録済みのストアド プロシージャの名前である必要があります。

[ @publication = ] 'publication' カスタム ストアド プロシージャまたはスクリプトが登録されているパブリケーションの名前。 publicationsysname で、既定値は NULL です

[ @article = ] 'article' カスタム ストアド プロシージャまたはスクリプトが登録されているアーティクルの名前。 articlesysname で、既定値は NULL です

リターン コードの値

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

解説

sp_register_custom_scriptingは、スナップショットレプリケーションとトランザクション レプリケーションで使用されます。

このストアド プロシージャは、レプリケートされたテーブルにスキーマを変更する前に実行する必要があります。 このストアド プロシージャの使用方法の詳細については、「カスタム トランザクション プロシージャを再生成してスキーマの変更をリフレクトする」を参照してください

アクセス許可

sp_register_custom_scriptingを実行できるのは、sysadmin 固定サーバー ロール、db_owner固定データベース ロール、またはdb_ddladmin固定データベース ロールのメンバーだけです。

参照

sp_unregister_custom_scripting (Transact-SQL)