sp_changearticle (Transact-SQL)

更新 : 2006 年 4 月 14 日

トランザクション レプリケーションまたはスナップショット レプリケーションのアーティクルのプロパティを変更します。このストアド プロシージャは、パブリッシャ側でパブリケーション データベースについて実行されます。

トピック リンク アイコンTransact-SQL 構文表記規則

構文

sp_changearticle [ [@publication= ] 'publication' ]
    [ , [ @article= ] 'article' ]
    [ , [ @property= ] 'property' ]
    [ , [ @value= ] 'value' ]
    [ , [ @force_invalidate_snapshot = ] force_invalidate_snapshot ]
    [ , [ @force_reinit_subscription = ] force_reinit_subscription ]
    [ , [ @publisher = ] 'publisher' ]

引数

  • [ @publication=] 'publication'
    アーティクルを含むパブリケーションの名前を指定します。publication のデータ型は sysname で、既定値は NULL です。
  • [ @article = ] 'article'
    プロパティを変更するアーティクルの名前を指定します。article のデータ型は sysname で、既定値は NULL です。
  • [ @property=] 'property'
    変更するアーティクルのプロパティを指定します。property のデータ型は nvarchar(100) です。
  • [ @value=] 'value'
    アーティクル プロパティの新しい値を指定します。value のデータ型は nvarchar(255) です。

    次の表に、アーティクルのプロパティと、それぞれの値を示します。

    プロパティ

  • [ @force_invalidate_snapshot = ] force_invalidate_snapshot
    このストアド プロシージャが実行する操作によって既存のスナップショットが無効になることを許可します。force_invalidate_snapshot のデータ型は bit で、既定値は 0 です。

    0 に設定すると、アーティクルへの変更によってスナップショットが無効になることはありません。変更に新しいスナップショットが必要であることをストアド プロシージャが検出すると、エラーが発生し、変更は行われません。

    1 に設定すると、アーティクルの変更によってスナップショットが無効になることがあります。また、新しいスナップショットを必要とする既存のサブスクリプションがある場合は、既存のスナップショットに古いスナップショットのマークを付けて、新しいスナップショットを生成することができます。

    変更によって新しいスナップショットの生成が必要になるプロパティについては、「解説」を参照してください。

  • [ **@force_reinit_subscription=]**force_reinit_subscription
    このストアド プロシージャが実行する操作によって、既存のサブスクリプションの再初期化が必要になることを許可します。force_reinit_subscription のデータ型は bit で、既定値は 0 です。

    0 に設定すると、アーティクルへの変更によってサブスクリプションが再初期化されることはありません。変更に既存のサブスクリプションの再初期化が必要であることをストアド プロシージャが検出すると、エラーが発生し、変更は加えられません。

    1 は、アーティクルの変更によって既存のサブスクリプションが再初期化されることを示し、サブスクリプションの再初期化を許可します。

    変更によって既存のサブスクリプションの再初期化が必要になるプロパティについては、「解説」を参照してください。

  • [ @publisher= ] 'publisher'
    SQL Server 以外のパブリッシャを指定します。publisher のデータ型は sysname で、既定値は NULL です。

    ms175980.note(ja-jp,SQL.90).gifメモ :
    SQL Server パブリッシャでアーティクルのプロパティを変更する場合は、publisher は使用しないでください。

リターン コードの値

成功した場合は 0 を、失敗した場合は 1 をそれぞれ返します。

解説

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

ピアツーピア トランザクション レプリケーションをサポートしているパブリケーションにアーティクルが属している場合は、descriptionins_cmdupd_cmd、および del_cmd プロパティのみを変更できます。

次のプロパティを変更するには、新しいスナップショットを生成する必要があります。また、force_invalidate_snapshot パラメータに値 1 を指定する必要があります。

  • del_cmd
  • dest_table
  • destination_owner
  • ins_cmd
  • pre_creation_cmd
  • schema_options
  • upd_cmd

次のプロパティのいずれかを変更するには、既存のサブスクリプションを再初期化する必要があります。また force_reinit_subscription パラメータに値 1 を指定する必要があります。

  • del_cmd
  • dest_table
  • destination_owner
  • filter
  • ins_cmd
  • status
  • upd_cmd

既存のパブリケーションの内部では、パブリケーション全体を削除してから再作成しなくても、sp_changearticle を使用して 1 つのアーティクルを変更できます。

ms175980.note(ja-jp,SQL.90).gifメモ :
schema_option の値を変更すると、ビットごとの更新は実行されません。つまり、sp_changearticle を使用して schema_option を設定すると、既存のビット設定が無効になる可能性があります。既存の設定を維持するには、設定する値と、schema_option の現在の値の間で、& (ビット演算子 AND) を実行する必要があります。schema_option の現在の値は、sp_helparticle を実行することによって判断できます。

有効なスキーマ オプション

次の表では、レプリケーションの種類 (トランザクションまたはスナップショット) とアーティクルの種類 (1 列目のデータ) に基づいて、schema_option に指定できる値について説明します。

アーティクルの種類 レプリケーションの種類  

 

トランザクション レプリケーション

スナップショット

logbased

すべてのオプション

0x02 を除くすべてのオプション

logbased manualfilter

すべてのオプション

0x02 を除くすべてのオプション

logbased manualview

すべてのオプション

0x02 を除くすべてのオプション

indexed view logbased

すべてのオプション

0x02 を除くすべてのオプション

indexed view logbased manualfilter

すべてのオプション

0x02 を除くすべてのオプション

indexed view logbased manualview

すべてのオプション

0x02 を除くすべてのオプション

indexed view logbase manualboth

すべてのオプション

0x02 を除くすべてのオプション

proc exec

0x010x200x20000x4000000x8000000x20000000x80000000x100000000x200000000x40000000、および 0x80000000

0x010x200x20000x4000000x8000000x20000000x80000000x100000000x200000000x40000000、および 0x80000000

serialized proc exec

0x010x200x20000x4000000x8000000x20000000x80000000x100000000x200000000x40000000、および 0x80000000

0x010x200x20000x4000000x8000000x20000000x80000000x100000000x200000000x40000000、および 0x80000000

proc schema only

0x010x200x20000x4000000x8000000x20000000x80000000x100000000x200000000x40000000、および 0x80000000

0x010x200x20000x4000000x8000000x20000000x80000000x100000000x200000000x40000000、および 0x80000000

view schema only

0x010x0100x0200x0400x01000x20000x400000x1000000x2000000x4000000x8000000x20000000x80000000x40000000、および 0x80000000

0x010x0100x0200x0400x01000x20000x400000x1000000x2000000x4000000x8000000x20000000x80000000x40000000、および 0x80000000

func schema only

0x010x200x20000x4000000x8000000x20000000x80000000x100000000x200000000x40000000、および 0x80000000

0x010x200x20000x4000000x8000000x20000000x80000000x100000000x200000000x40000000、および 0x80000000

indexed view schema only

0x010x0100x0200x0400x01000x20000x400000x1000000x2000000x4000000x8000000x20000000x80000000x40000000、および 0x80000000

0x010x0100x0200x0400x01000x20000x400000x1000000x2000000x4000000x8000000x20000000x80000000x40000000、および 0x80000000

ms175980.note(ja-jp,SQL.90).gifメモ :
キュー更新パブリケーションの場合は、schema_option0x80 を有効にする必要があります。SQL Server 以外のパブリケーションに対してサポートされている schema_option 値は、0x010x020x100x400x800x1000、および 0x4000 です。

権限

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

使用例

DECLARE @publication AS sysname;
DECLARE @article AS sysname;
DECLARE @option AS int;
SET @publication = N'AdvWorksProductTran';
SET @article = N'Product';
SET @option = (SELECT CAST(0x0000000002030073 AS int));

-- Change the schema options to replicate schema with XML.
USE [AdventureWorks]
EXEC sp_changearticle 
  @publication = @publication,
  @article = @article, 
  @property = N'schema_option', 
  @value = @option,
  @force_invalidate_snapshot = 1;
GO

参照

関連項目

sp_addarticle (Transact-SQL)
sp_articlecolumn (Transact-SQL)
sp_droparticle (Transact-SQL)
sp_helparticle (Transact-SQL)
sp_helparticlecolumns (Transact-SQL)

その他の技術情報

アーティクルのプロパティを表示および変更する方法 (レプリケーション Transact-SQL プログラミング)
パブリケーションおよびアーティクルのプロパティの変更

ヘルプおよび情報

SQL Server 2005 の参考資料の入手

変更履歴

リリース 履歴

2006 年 4 月 14 日

変更内容 :
  • schema_option プロパティの 0x20000000 値についての説明を更新。

2005 年 12 月 5 日

新しい内容
  • type プロパティで不足していた値を追加。
  • schema_option パラメータに 0x20 オプションを設定する場合の追加制約について説明を追加。
変更内容
  • type プロパティの説明を明記。
  • property パラメータのサイズを修正。