sp_droparticle (Transact-SQL)

適用対象: SQL Server Azure 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'

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

[ @article = ] N'article'

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

[ @ignore_distributor = ] ignore_distributor

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

[ @force_invalidate_snapshot = ] force_invalidate_snapshot

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

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

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

[ @publisher = ] N'publisher'

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

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

[ @from_drop_publication = ] from_drop_publication

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

リターン コードの値

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

解説

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

水平方向にフィルター処理されたアーティクルの場合、sp_droparticleは、sysarticles テーブル内のアーティクルの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を実行できます。