sp_droparticle (Transact-SQL)

適用対象: SQL ServerAzure SQL Managed Instance

スナップショットパブリケーションまたはトランザクション パブリケーションからアーティクルを削除します。 1 つ以上のサブスクリプションが存在する場合、アーティクルを削除することはできません。 このストアド プロシージャは、パブリッシャー側のパブリケーション データベースで実行されます。

Transact-SQL 構文表記規則

構文

sp_droparticle
    [ @publication = ] N'publication'
    , [ @article = ] N'article'
    [ , [ @ignore_distributor = ] ignore_distributor ]
    [ , [ @force_invalidate_snapshot = ] force_invalidate_snapshot ]
    [ , [ @publisher = ] N'publisher' ]
    [ , [ @from_drop_publication = ] from_drop_publication ]
[ ; ]

引数

[ @publication = ] N'publication'

削除するアーティクルを含むパブリケーションの名前。 @publicationは sysname で、既定値はありません。

[ @article = ] N'article'

削除するアーティクルの名前。 @articleは sysname で、既定値はありません。

[ @ignore_distributor = ] ignore_distributor

単に情報を示すためだけに特定されます。 サポートされていません。 将来の互換性は保証されません。

[ @force_invalidate_snapshot = ] force_invalidate_スナップショット

このストアド プロシージャによって実行されたアクションによって、既存のスナップショットが無効になる可能性があることを確認します。 @force_invalidate_スナップショットはビットで、既定値は 0.

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

  • 1は、アーティクルの変更によってスナップショットが無効になる可能性があることを指定します。また、新しいスナップショットを必要とする既存のサブスクリプションがある場合は、既存のスナップショットが古いとしてマークされ、新しいスナップショットが生成されるアクセス許可を付与します。

[ @publisher = ] N'publisher'

SQL Server 以外のパブリッシャーを指定します。 @publisherは sysname で、既定値は NULL.

SQL Server パブリッシャーでアーティクルのプロパティを変更する場合は、このパラメーターを使用しないでください。

[ @from_drop_publication = ] from_drop_publication

単に情報を示すためだけに特定されます。 サポートされていません。 将来の互換性は保証されません。

リターン コードの値

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

解説

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

水平方向にフィルター処理されたアーティクルの場合は、 sp_droparticle sysarticles (Transact-SQL) テーブル内のアーティクルの列をチェックtypeして、ビューまたはフィルターも削除する必要があるかどうかを判断します。 ビューまたはフィルターが自動生成された場合は、アーティクルと共に削除されます。 手動で作成された場合、削除されません。

sp_droparticleパブリケーションからアーティクルを削除しても、パブリケーション データベースからオブジェクトが削除されたり、サブスクリプション データベースから対応するオブジェクトが削除されたりすることはありません。 これらのオブジェクトは、必要に応じて DROP <object> を使用して手動で削除します。

DECLARE @publication AS sysname;
DECLARE @article AS sysname;
SET @publication = N'AdvWorksProductTran'; 
SET @article = N'Product'; 

-- Drop the transactional article.
USE [AdventureWorks2022]
EXEC sp_droparticle 
  @publication = @publication, 
  @article = @article,
  @force_invalidate_snapshot = 1;
GO

アクセス許可

sysadmin 固定サーバー ロールまたは固定データベース ロールdb_ownerメンバーのみが実行sp_droparticleできます。