sp_addmergepullsubscription (Transact-SQL)

Aktualisiert: 15. September 2007

Fügt ein Pullabonnement zu einer Mergepublikation hinzu. Diese gespeicherte Prozedur wird auf dem Abonnenten für die Abonnementdatenbank ausgeführt.

Themenlink (Symbol)Transact-SQL-Syntaxkonventionen

Syntax

sp_addmergepullsubscription [ @publication= ] 'publication' 
    [ , [ @publisher= ] 'publisher' ] 
    [ , [ @publisher_db = ] 'publisher_db' ] 
    [ , [ @subscriber_type= ] 'subscriber_type' ] 
    [ , [ @subscription_priority= ] subscription_priority ] 
    [ , [ @sync_type= ] 'sync_type' ] 
    [ , [ @description= ] 'description' ]

Argumente

  • [ @publication=] 'publication'
    Der Name der Publikation. publication ist vom Datentyp sysname und besitzt keinen Standardwert.
  • [ @publisher=] 'publisher'
    Der Name des Verlegers. Publisher ist vom Datentyp sysname, Standardwert ist der Name des lokalen Servers. Der Verleger muss ein gültiger Server sein.
  • [ @publisher_db =] 'publisher_db'
    Der Name der Verlegerdatenbank. publisher_db ist vom Datentyp sysname, der Standardwert ist NULL.
  • [ @subscriber_type=] 'subscriber_type'
    Der Typ des Abonnenten. subscriber_type ist vom Datentyp nvarchar(15) und kann den Wert global, local oder anonymous haben. In SQL Server 2005 werden lokale Abonnements als Clientabonnements und globale Abonnements als Serverabonnements bezeichnet. Weitere Informationen finden Sie im Abschnitt zu den Abonnementtypen unter Konflikterkennung und -lösung bei der Mergereplikation. Der Wert anonymous ist erforderlich, wenn ein Abonnement erstellt werden soll, ohne dass das Abonnement auf dem Verleger registriert wird. Dies ist für Fälle wie beispielsweise die Websynchronisierung erforderlich, bei denen Sie während der Abonnementkonfiguration keine SQL Server-Verbindung mit dem Verleger herstellen können.
  • [ @subscription_priority=] subscription_priority
    Die Abonnementpriorität. subscription_priorityist vom Datentyp real, der Standardwert ist NULL. Für lokale und anonyme Abonnements ist die Priorität 0.0. Die Priorität wird vom Standardresolver verwendet, um einen Gewinner zu ermitteln, wenn Konflikte erkannt werden. Für globale Abonnenten muss die Abonnementpriorität kleiner als 100 sein. Dieser Wert gibt die Priorität des Verlegers an.
  • [ @sync_type=] 'sync_type'
    Der Synchronisierungstyp des Abonnements. sync_typeist vom Datentyp nvarchar(15), der Standardwert ist automatic. Der Wert kann automatic oder none sein. Bei automatic werden das Schema und die Ausgangsdaten für veröffentlichte Tabellen zunächst an den Abonnenten übertragen. Bei none wird davon ausgegangen, dass der Abonnent bereits das Schema und die Ausgangsdaten für veröffentlichte Tabellen besitzt. Systemtabellen und Daten werden immer übertragen.

    ms189456.note(de-de,SQL.90).gifHinweis:
    Es wird nicht empfohlen, den Wert none anzugeben. Weitere Informationen finden Sie unter Initialisieren eines Mergeabonnements ohne Snapshot.
  • [ @description=] 'description'
    Eine kurze Beschreibung dieses Pullabonnements. descriptionist vom Datentyp nvarchar(255), der Standardwert ist NULL. Dieser Wert wird vom Replikationsmonitor in der Spalte Anzeigename angezeigt, die zum Sortieren der Abonnements für eine überwachte Publikation verwendet werden kann.

Rückgabecodewerte

0 (Erfolg) oder 1 (Fehler)

Hinweise

sp_addmergepullsubscription wird bei der Mergereplikation verwendet.

Wenn der SQL Server-Agent zur Synchronisierung des Abonnements verwendet wird, muss die gespeicherte Prozedur sp_addmergepullsubscription_agent auf dem Abonnenten ausgeführt werden, um einen Agent sowie einen Auftrag für die Synchronisierung mit der Publikation zu erstellen.

Berechtigungen

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

Beispiel

-- This script uses sqlcmd scripting variables. They are in the form
-- $(MyVariable). For information about how to use scripting variables  
-- on the command line and in SQL Server Management Studio, see the 
-- "Executing Replication Scripts" section in the topic
-- "Programming Replication Using System Stored Procedures".

-- Execute this batch at the Subscriber.
DECLARE @publication AS sysname;
DECLARE @publisher AS sysname;
DECLARE @publicationDB AS sysname;
DECLARE @hostname AS sysname;
SET @publication = N'AdvWorksSalesOrdersMerge';
SET @publisher = $(PubServer);
SET @publicationDB = N'AdventureWorks';
SET @hostname = N'adventure-works\david8';

-- At the subscription database, create a pull subscription 
-- to a merge publication.
USE [AdventureWorksReplica]
EXEC sp_addmergepullsubscription 
  @publisher = @publisher, 
  @publication = @publication, 
  @publisher_db = @publicationDB;

-- Add an agent job to synchronize the pull subscription. 
EXEC sp_addmergepullsubscription_agent 
  @publisher = @publisher, 
  @publisher_db = @publicationDB, 
  @publication = @publication, 
  @distributor = @publisher, 
  @job_login = $(Login), 
  @job_password = $(Password),
  @hostname = @hostname;
GO

-- This script uses sqlcmd scripting variables. They are in the form
-- $(MyVariable). For information about how to use scripting variables  
-- on the command line and in SQL Server Management Studio, see the 
-- "Executing Replication Scripts" section in the topic
-- "Programming Replication Using System Stored Procedures".

-- Publication must support anonymous Subscribers.
-- Execute this batch at the Subscriber.
DECLARE @publication AS sysname;
DECLARE @publisher AS sysname;
DECLARE @publicationDB AS sysname;
DECLARE @websyncurl AS sysname;
DECLARE @security_mode AS int;
DECLARE @login AS sysname;
DECLARE @password AS nvarchar(512);
SET @publication = N'AdvWorksSalesOrdersMergeWebSync';
SET @publisher = $(PubServer);
SET @publicationDB = N'AdventureWorks';
SET @websyncurl = 'https://' + $(WebServer) + '/WebSync';
SET @security_mode = 0; -- Basic Authentication for IIS
SET @login = $(Login);
SET @password = $(Password);

-- At the subscription database, create a pull subscription 
-- to a merge publication.
USE [AdventureWorksReplica]
EXEC sp_addmergepullsubscription 
    @publisher = @publisher, 
    @publication = @publication, 
    @publisher_db = @publicationDB,
    @subscriber_type = N'anonymous';

-- Add an agent job to synchronize the pull subscription. 
EXEC sp_addmergepullsubscription_agent 
    @publisher = @publisher, 
    @publisher_db = @publicationDB, 
    @publication = @publication, 
    @distributor = @publisher, 
    @job_login = @login, 
    @job_password = @password,
    @use_web_sync = 1,
    @internet_security_mode = @security_mode,
    @internet_url = @websyncurl,
    @internet_login = @login,
    @internet_password = @password;
GO

Siehe auch

Verweis

sp_addmergepullsubscription_agent (Transact-SQL)
sp_changemergepullsubscription (Transact-SQL)
sp_dropmergepullsubscription (Transact-SQL)
sp_helpmergepullsubscription (Transact-SQL)
sp_helpsubscription_properties (Transact-SQL)

Andere Ressourcen

Vorgehensweise: Erstellen eines Pullabonnements (Replikationsprogrammierung mit Transact-SQL)
Abonnieren von Publikationen

Hilfe und Informationen

Informationsquellen für SQL Server 2005

Änderungsverlauf

Version Verlauf

15. September 2007

Neuer Inhalt:
  • Es wurde ein Hinweis hinzugefügt, dass die Angabe des Werts none für den @ sync_type-Parameter nicht empfohlen wird.

12. Dezember 2006

Geänderter Inhalt:
  • Der Inhalt, mit dem fälschlicherweise ausgesagt wurde, dass anonyme Abonnements als veraltet markiert sind, wurde entfernt.