sp_droppublication (Transact-SQL)

Supprime une publication et l'Agent de capture instantanée qui lui est associé. Tous les abonnements doivent être supprimés avant de pouvoir supprimer une publication. Les articles de la publication sont supprimés automatiquement. Cette procédure stockée est exécutée sur la base de données de publication au niveau du serveur de publication.

Icône Lien de rubriqueConventions de la syntaxe de Transact-SQL

Syntaxe

sp_droppublication [ @publication= ] 'publication' 
    [ , [ @ignore_distributor = ] ignore_distributor ]

Arguments

  • [ @publication= ] 'publication'
    Nom de la publication à supprimer. publication est de type sysname, sans valeur par défaut. Si all est spécifié, toutes les publications sont supprimées de la base de données de publication, à l'exception de celles qui font l'objet d'abonnements.

  • [ @ignore_distributor = ] ignore_distributor
    Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

Valeurs des codes de retour

0 (succès) ou 1 (échec)

Notes

sp_droppublication est utilisé dans la réplication de capture instantanée et dans la réplication transactionnelle.

Cette procédure supprime récursivement tous les articles associés à une publication, puis supprime la publication même. Une publication ne peut être supprimée si elle fait l'objet d'un ou de plusieurs abonnements. Pour plus d'informations sur la suppression des abonnements, consultez Procédure : supprimer un abonnement par émission de données (programmation Transact-SQL de la réplication) et Procédure : supprimer un abonnement par extraction (programmation Transact-SQL de la réplication).

Exécuter sp_droppublication dans le but de supprimer une publication ne supprime pas les objets publiés de la base de données de publication ni les objets correspondants de la base de données d'abonnement. Si nécessaire, utilisez DROP <objet> pour supprimer manuellement ces objets.

Exemples

DECLARE @publicationDB AS sysname;
DECLARE @publication AS sysname;
SET @publicationDB = N'AdventureWorks2008R2'; 
SET @publication = N'AdvWorksProductTran'; 

-- Remove a transactional publication.
USE [AdventureWorks2008R2]
EXEC sp_droppublication @publication = @publication;

-- Remove replication objects from the database.
USE [master]
EXEC sp_replicationdboption 
  @dbname = @publicationDB, 
  @optname = N'publish', 
  @value = N'false';
GO

Autorisations

Seuls les membres du rôle serveur fixe sysadmin ou du rôle de base de données fixe db_owner peuvent exécuter sp_droppublication.