次の方法で共有


sp_repladdcolumn (Transact-SQL)

適用対象: SQL Server Azure SQL Managed Instance

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

重要

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

Transact-SQL 構文表記規則

構文

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

引数

[ @source_object = ] N'source_object'

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

[ @column = ] N'column'

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

[ @typetext = ] N'typetext'

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

[ @publication_to_add = ] N'publication_to_add'

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

[ @from_agent = ] from_agent

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

[ @schema_change_script = ] N'schema_change_script'

システムによって生成されたカスタム ストアド プロシージャの変更に使用する SQL Server スクリプトの名前とパスを指定します。 @schema_change_scriptnvarchar(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_subscriptionbit で、既定値は 0 です。

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

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

リターン コードの値

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

アクセス許可

sysadmin固定サーバー ロールとdb_owner固定データベース ロールのメンバーのみが、sp_repladdcolumnを実行できます。