sp_repladdcolumn (Transact-SQL)

適用対象: SQL ServerAzure SQL Managed Instance

パブリッシュされた既存のテーブル アーティクルに列を追加します。 このテーブルをパブリッシュするすべてのパブリッシャーに新しい列を追加することも、テーブルをパブリッシュする特定のパブリケーションに列を追加することもできます。 このストアド プロシージャは、パブリッシャー側のパブリケーション データベースで実行されます。

重要

このストアド プロシージャは非推奨となり、下位互換性のためにサポートされています。 これは、Microsoft SQL Server 2000 (8.x) パブリッシャーと SQL Server 2000 (8.x) 再パブリッシュサブスクライバーでのみ使用する必要があります。 この手順は、SQL Server 2005 (9.x) 以降で導入されたデータ型の列では使用しないでください。

Transact-SQL 構文表記規則

構文

  
sp_repladdcolumn [ @source_object = ] 'source_object', [ @column = ] 'column' ]  
    [ , [ @typetext = ] 'typetext' ]  
    [ , [ @publication_to_add = ] 'publication_to_add' ]  
    [ , [ @from_agent = ] from_agent ]  
    [ , [ @schema_change_script = ] 'schema_change_script' ]  
    [ , [ @force_invalidate_snapshot = ] force_invalidate_snapshot ]  
    [ , [ @force_reinit_subscription = ] force_reinit_subscription ]  

引数

[ @source_object =] 'source_object'
追加する新しい列を含むテーブル アーティクルの名前を指定します。 source_objectは nvarchar(358) で、既定値はありません。

[ @column =] 'column'
レプリケーション用に追加するテーブル内の列の名前を指定します。 columnsysname で、既定値はありません。

[ @typetext =] 'typetext'
追加する列の定義を指定します。 typetextnvarchar(3000)で、既定値はありません。 たとえば、列order_filledが追加されていて、NULL ではなく単一の文字フィールドで、既定値が N の場合、order_filledは列パラメーターになります。一方、列の定義では char(1) NOT NULL CONSTRAINT constraint_name DEFAULT 'N' が型テキスト パラメーター値になります

[ @publication_to_add =] 'publication_to_add'
新しい列が追加されるパブリケーションの名前を指定します。 publication_to_addは nvarchar(4000) で、既定値は ALL です。 ALL の場合、このテーブルを含むすべてのパブリケーションが影響を受ける。 publication_to_addを指定した場合、このパブリケーションにのみ新しい列が追加されます。

[ @from_agent = ] from_agent
ストアド プロシージャがレプリケーション エージェントによって実行されている場合。 from_agentは int で、既定値は 0 で、このストアド プロシージャがレプリケーション エージェントによって実行されている場合は値 1 が使用され、それ以外の場合は既定値の 0 を使用する必要があります。

[ @schema_change_script =] 'schema_change_script'
システムによって生成されたカスタム ストアド プロシージャの変更に使用する SQL Server スクリプトの名前とパスを指定します。 schema_change_scriptは nvarchar(4000) で、既定値は NULL です。 レプリケーションを使用すると、トランザクション レプリケーションで使用される 1 つ以上の既定のプロシージャを、ユーザー定義のカスタム ストアド プロシージャで置き換えることができます。 schema_change_scriptは、sp_repladdcolumnを使用してレプリケートテーブルアーティクルにスキーマを変更した後に実行され、次のいずれかの操作に使用できます。

  • カスタム ストアド プロシージャが自動的に再生成された場合、 schema_change_script を使用してこれらのカスタム ストアド プロシージャを削除し、新しいスキーマをサポートするユーザー定義のカスタム ストアド プロシージャに置き換えることができます。

  • カスタム ストアド プロシージャが自動的に再生成されない場合は、 schema_change_scriptを使用してこれらのストアド プロシージャを再生成したり、ユーザー定義のカスタム ストアド プロシージャを作成することができます。

[ @force_invalidate_snapshot = ] force_invalidate_スナップショット
スナップショットを無効にする機能を有効または無効にします。 force_invalidate_スナップショットは少し、既定値は 1 です

1 は、アーティクルに対する変更によってスナップショットが無効になる可能性があることを指定し、その場合は値 1 を指定すると、新しいスナップショットが発生するアクセス許可が与えられます。

0 は、アーティクルを変更してもスナップショットが無効にならないことを指定します。

[ @force_reinit_subscription = ] force_reinit_subscription
サブスクリプションを再初期化する機能を有効または無効にします。 force_reinit_subscriptionは、既定値が 0 のビットです。

0 は、アーティクルに対する変更によってサブスクリプションが再初期化されないように指定します。

1 は、アーティクルに対する変更によってサブスクリプションが再初期化される可能性があることを指定し、その場合は値 1 を指定すると、サブスクリプションの再初期化が行われるアクセス許可が付与されます。

リターン コードの値

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

アクセス許可

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

参照

SQL Server レプリケーションの非推奨の機能
システム ストアド プロシージャ (Transact-SQL)