sp_dropmergepublication (Transact-SQL)
マージ パブリケーションおよびこれと関連するスナップショット エージェントを削除します。マージ パブリケーションを削除する前に、すべてのサブスクリプションを削除しておく必要があります。パブリケーション内のアーティクルは自動的に削除されます。このストアド プロシージャは、パブリッシャ側でパブリケーション データベースについて実行されます。
構文
sp_dropmergepublication [ @publication= ] 'publication'
[ , [ @ignore_distributor = ] ignore_distributor ]
[ , [ @reserved = ] reserved ]
[ , [ @ignore_merge_metadata = ] ignore_merge_metadata ]
引数
[ @publication=] 'publication'
削除するパブリケーションの名前を指定します。publication のデータ型は sysname で、既定値はありません。all の場合、既存のすべてのマージ パブリケーションと、それらに関連付けられているスナップショット エージェント ジョブが削除されます。publication に特定の値を指定すると、指定したパブリケーションとそれに関連付けられたスナップショット エージェント ジョブのみが削除されます。[ @ignore_distributor =] ignore_distributor
ディストリビュータ側でクリーンアップを行わずに、パブリケーションを削除する場合に使用します。ignore_distributor のデータ型は bit で、既定値は 0 です。このパラメータは、ディストリビュータを再インストールするときにも使用します。[ @reserved=] reserved
将来の使用に備えて予約されています。reserved のデータ型は bit で、既定値は 0 です。[ @ignore_merge_metadata= ] ignore_merge_metadata
内部使用のみです。
戻り値
成功した場合は 0 を、失敗した場合は 1 をそれぞれ返します。
説明
sp_dropmergepublication は、マージ レプリケーションで使用します。
sp_dropmergepublication では、パブリケーションに関連付けられたすべてのアーティクルが反復的に削除された後、パブリケーション自体が削除されます。1 つでもサブスクリプションがあると、パブリケーションを削除することはできません。サブスクリプションを削除する方法については、「プッシュ サブスクリプションを削除する方法 (レプリケーション Transact-SQL プログラミング)」および「プル サブスクリプションを削除する方法 (レプリケーション Transact-SQL プログラミング)」を参照してください。
sp_dropmergepublication を実行してパブリケーションを削除しても、パブリケーション データベースからオブジェクトが削除されたり、サブスクリプション データベースから対応するオブジェクトが削除されるわけではありません。必要に応じて DROP <object> を使用し、これらのオブジェクトを手動で削除してください。
使用例
DECLARE @publication AS sysname
DECLARE @publicationDB AS sysname
SET @publication = N'AdvWorksSalesOrdersMerge'
SET @publicationDB = N'AdventureWorks'
-- Remove the merge publication.
USE [AdventureWorks]
EXEC sp_dropmergepublication @publication = @publication;
-- Remove replication objects from the database.
USE master
EXEC sp_replicationdboption
@dbname = @publicationDB,
@optname = N'merge publish',
@value = N'false'
GO
権限
sp_dropmergepublication を実行できるのは、固定サーバー ロール sysadmin または固定データベース ロール db_owner のメンバだけです。