sp_changearticle (Transact-SQL)
更新 : 2006 年 4 月 14 日
トランザクション レプリケーションまたはスナップショット レプリケーションのアーティクルのプロパティを変更します。このストアド プロシージャは、パブリッシャ側でパブリケーション データベースについて実行されます。
構文
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 です。メモ : SQL Server パブリッシャでアーティクルのプロパティを変更する場合は、publisher は使用しないでください。
リターン コードの値
成功した場合は 0 を、失敗した場合は 1 をそれぞれ返します。
解説
sp_changearticle は、スナップショット レプリケーションおよびトランザクション レプリケーションで使用します。
ピアツーピア トランザクション レプリケーションをサポートしているパブリケーションにアーティクルが属している場合は、description、ins_cmd、upd_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 つのアーティクルを変更できます。
メモ : |
---|
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 |
0x01、0x20、0x2000、0x400000、0x800000、0x2000000、0x8000000、0x10000000、0x20000000、0x40000000、および 0x80000000 |
0x01、0x20、0x2000、0x400000、0x800000、0x2000000、0x8000000、0x10000000、0x20000000、0x40000000、および 0x80000000 |
serialized proc exec |
0x01、0x20、0x2000、0x400000、0x800000、0x2000000、0x8000000、0x10000000、0x20000000、0x40000000、および 0x80000000 |
0x01、0x20、0x2000、0x400000、0x800000、0x2000000、0x8000000、0x10000000、0x20000000、0x40000000、および 0x80000000 |
proc schema only |
0x01、0x20、0x2000、0x400000、0x800000、0x2000000、0x8000000、0x10000000、0x20000000、0x40000000、および 0x80000000 |
0x01、0x20、0x2000、0x400000、0x800000、0x2000000、0x8000000、0x10000000、0x20000000、0x40000000、および 0x80000000 |
view schema only |
0x01、0x010、0x020、0x040、0x0100、0x2000、0x40000、0x100000、0x200000、0x400000、0x800000、0x2000000、0x8000000、0x40000000、および 0x80000000 |
0x01、0x010、0x020、0x040、0x0100、0x2000、0x40000、0x100000、0x200000、0x400000、0x800000、0x2000000、0x8000000、0x40000000、および 0x80000000 |
func schema only |
0x01、0x20、0x2000、0x400000、0x800000、0x2000000、0x8000000、0x10000000、0x20000000、0x40000000、および 0x80000000 |
0x01、0x20、0x2000、0x400000、0x800000、0x2000000、0x8000000、0x10000000、0x20000000、0x40000000、および 0x80000000 |
indexed view schema only |
0x01、0x010、0x020、0x040、0x0100、0x2000、0x40000、0x100000、0x200000、0x400000、0x800000、0x2000000、0x8000000、0x40000000、および 0x80000000 |
0x01、0x010、0x020、0x040、0x0100、0x2000、0x40000、0x100000、0x200000、0x400000、0x800000、0x2000000、0x8000000、0x40000000、および 0x80000000 |
メモ : |
---|
キュー更新パブリケーションの場合は、schema_option 値 0x80 を有効にする必要があります。SQL Server 以外のパブリケーションに対してサポートされている schema_option 値は、0x01、0x02、0x10、0x40、0x80、0x1000、および 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 プログラミング)
パブリケーションおよびアーティクルのプロパティの変更
ヘルプおよび情報
変更履歴
リリース | 履歴 |
---|---|
2006 年 4 月 14 日 |
|
2005 年 12 月 5 日 |
|