Share via


sp_register_custom_scripting (Transact-SQL)

レプリケーションを行うと、トランザクション レプリケーションで使用される 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'
    登録するカスタム ストアド プロシージャまたはスクリプトの種類を指定します。type のデータ型は varchar(16) で、既定値はありません。次のいずれかの値を指定できます。

    説明

    insert

    登録したカスタム ストアド プロシージャを、INSERT ステートメントがレプリケートされるときに実行。

    update

    登録したカスタム ストアド プロシージャを、UPDATE ステートメントがレプリケートされるときに実行。

    delete

    登録したカスタム ストアド プロシージャを、DELETE ステートメントがレプリケートされるときに実行。

    custom_script

    スクリプトをデータ定義言語 (DDL) トリガの最後に実行。

  • [ @value= ] 'value'
    登録するストアド プロシージャの名前または登録する Transact-SQL スクリプト ファイルの名前とその完全修飾パスを指定します。value のデータ型は nvarchar(1024) で、既定値はありません。

    ms188010.note(ja-jp,SQL.90).gifメモ :
    value パラメータに NULL を指定すると、先に登録したスクリプトが登録解除されます。これは sp_unregister_custom_scripting を実行した場合と同じになります。

    type の値に custom_script を指定した場合は、Transact-SQL スクリプト ファイルの名前と完全パスを指定する必要があります。それ以外の場合、value には、登録するストアド プロシージャの名前を指定します。

  • [ @publication= ] 'publication'
    カスタム ストアド プロシージャまたはスクリプトを登録するパブリケーションの名前を指定します。publication のデータ型は sysname で、既定値は NULL です。
  • [ @article= ] 'article'
    カスタム ストアド プロシージャまたはスクリプトを登録するアーティクルの名前を指定します。article のデータ型は sysname で、既定値は NULL です。

解説

sp_register_custom_scripting は、スナップショットおよびトランザクション レプリケーションで使用します。

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

権限

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

戻り値

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

参照

関連項目

sp_unregister_custom_scripting (Transact-SQL)

ヘルプおよび情報

SQL Server 2005 の参考資料の入手