Freigeben über


sp_droppublication (Transact-SQL)

Löscht eine Veröffentlichung und den ihr zugeordneten Snapshot-Agent. Vor dem Löschen einer Veröffentlichung müssen alle Abonnements gelöscht werden. Die Artikel in der Veröffentlichung werden automatisch gelöscht. Diese gespeicherte Prozedur wird auf dem Verleger für die Veröffentlichungsdatenbank ausgeführt.

Themenlink (Symbol)Transact-SQL-Syntaxkonventionen

Syntax

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

Argumente

  • [ @publication=] 'publication'
    Der Name der Veröffentlichung, die gelöscht werden soll. publication ist vom Datentyp sysname und hat keinen Standardwert. Wenn der Wert all angegeben wird, werden alle Veröffentlichungen aus der Veröffentlichungsdatenbank gelöscht, für die keine Abonnements vorhanden sind.

  • [ @ignore_distributor = ] ignore_distributor
    Nur für Informationszwecke identifiziert. Nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.

Rückgabecodewerte

0 (Erfolg) oder 1 (Fehler)

Hinweise

sp_droppublication wird bei der Snapshot- und Transaktionsreplikation verwendet.

sp_droppublication löscht rekursiv alle Artikel, die zu einer Veröffentlichung zugeordnet sind. Anschließend wird die Veröffentlichung selbst gelöscht. Solange für eine Veröffentlichung ein Abonnement vorhanden ist, kann sie nicht gelöscht werden. Informationen zum Entfernen von Abonnements finden Sie unter Vorgehensweise: Löschen eines Pushabonnements (Replikationsprogrammierung mit Transact-SQL) und Vorgehensweise: Löschen eines Pullabonnements (Replikationsprogrammierung mit Transact-SQL).

Das Ausführen von sp_droppublication zum Löschen einer Veröffentlichung führt nicht zum Entfernen von veröffentlichten Objekten aus der Veröffentlichungsdatenbank oder der entsprechenden Objekte aus der Abonnementdatenbank. Verwenden Sie DROP <object>, um diese Objekte bei Bedarf manuell zu entfernen.

Beispiele

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

-- Remove a transactional publication.
USE [AdventureWorks]
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

Berechtigungen

Nur Mitglieder der festen Serverrolle sysadmin oder der festen Datenbankrolle db_owner können sp_droppublication ausführen.