sp_repladdcolumn (Transact-SQL)
適用対象: SQL Server Azure SQL Managed Instance
パブリッシュされた既存のテーブル アーティクルに列を追加します。 このテーブルをパブリッシュするすべてのパブリッシャーに新しい列を追加することも、テーブルをパブリッシュする特定のパブリケーションに列を追加することもできます。 このストアド プロシージャは、パブリッシャー側のパブリケーション データベースで実行されます。
重要
このストアド プロシージャは非推奨となり、下位互換性のためにサポートされています。 これは、Microsoft SQL Server 2000 (8.x) パブリッシャーと SQL Server 2000 (8.x) 再パブリッシュサブスクライバーでのみ使用する必要があります。 この手順は、SQL Server 2005 (9.x) 以降で導入されたデータ型の列では使用しないでください。
構文
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'
レプリケーション用に追加するテーブル内の列の名前を指定します。 column は sysname で、既定値はありません。
[ @typetext =] 'typetext'
追加する列の定義を指定します。 typetext は nvarchar(3000)で、既定値はありません。 たとえば、列order_filledが追加され、NULL ではなく単一の文字フィールドであり、既定値が N の場合、order_filledは column パラメーターになります。一方、列の定義では、
[ @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_snapshot
スナップショットを無効にする機能を有効または無効にします。 force_invalidate_snapshot は ビットで、既定値は 1 です。
1 は、アーティクルに対する変更によってスナップショットが無効になる可能性があることを指定し、その場合は値 1 は新しいスナップショットを実行するためのアクセス許可を付与します。
0 は、アーティクルに対する変更によってスナップショットが無効にならないことを指定します。
[ @force_reinit_subscription = ] force_reinit_subscription
サブスクリプションを再初期化する機能を有効または無効にします。 force_reinit_subscription は ビットであり 既定値は 0 です。
0 は、アーティクルの変更によってサブスクリプションが再初期化されないように指定します。
1 は、アーティクルの変更によってサブスクリプションが再初期化される可能性があることを指定します。その場合は、 1 の値を指定すると、サブスクリプションの再初期化が行われるアクセス許可が付与されます。
リターン コードの値
0 (成功) または 1 (失敗)
アクセス許可
sp_repladdcolumn を実行できるのは、sysadmin 固定サーバー ロールまたは db_owner 固定データベース ロールのメンバーだけです。