sp_addpullsubscription (Transact-SQL)

Aktualisiert: 12. Dezember 2006

Fügt ein Pullabonnement einer Snapshot- oder Transaktionspublikation hinzu. Diese gespeicherte Prozedur wird auf dem Abonnenten für die Datenbank ausgeführt, für die das Pullabonnement erstellt werden soll.

Themenlink (Symbol)Transact-SQL-Syntaxkonventionen

Syntax

sp_addpullsubscription [ @publisher= ] 'publisher'
    [ , [ @publisher_db= ] 'publisher_db' ]
        , [ @publication= ] 'publication'
    [ , [ @independent_agent= ] 'independent_agent' ]
    [ , [ @subscription_type= ] 'subscription_type' ]
    [ , [ @description= ] 'description' ]
    [ , [ @update_mode= ] 'update_mode' ]
    [ , [ @immediate_sync = ] immediate_sync ]

Argumente

  • [ @publisher=] 'publisher'
    Der Name des Verlegers. publisher ist vom Datentyp sysname und hat keinen Standardwert.
  • [ @publisher_db=] 'publisher_db'
    Der Name der Verlegerdatenbank. publisher_db ist vom Datentyp sysname. Der Standardwert ist NULL. publisher_db wird von Oracle-Verlegern ignoriert.
  • [ @publication = ] 'publication'
    Der Name der Publikation. publication ist vom Datentyp sysname und hat keinen Standard.
  • [ @independent_agent=] 'independent_agent'
    Gibt an, ob ein eigenständiger Verteilungs-Agent für diese Publikation vorhanden ist. independent_agent ist vom Datentyp nvarchar(5); der Standardwert ist TRUE. Bei true ist ein eigenständiger Verteilungs-Agent für diese Publikation vorhanden. Bei false ist ein Verteilungs-Agent für jedes Paar aus Verlegerdatenbank und Abonnentendatenbank vorhanden. independent_agent ist eine Eigenschaft der Publikation. Sie muss hier denselben Wert wie auf dem Verleger haben.
  • [ @subscription_type=] 'subscription_type'
    Der Typ des Abonnements. subscription_type ist vom Datentyp nvarchar(9); der Standardwert ist anonymous. Sie müssen für subscription_type den Wert pull angeben, es sei denn, Sie möchten ein Abonnement erstellen, ohne das Abonnement auf dem Verleger zu registrieren. In diesem Fall müssen Sie den Wert anonymous angeben. Dies ist notwendig für Fälle, in denen Sie während der Abonnementkonfiguration keine SQL Server-Verbindung mit dem Verleger herstellen können.
  • [ @description =] 'description'
    Die Beschreibung der Publikation. description ist vom Datentyp nvarchar(100); der Standardwert ist NULL.
  • [ @update_mode=] 'update_mode'
    Der Aktualisierungstyp. update_mode ist vom Datentyp nvarchar(30). Die folgenden Werte sind möglich.

    Wert Beschreibung

    read only (Standard)

    Das Abonnement ist schreibgeschützt. Änderungen am Abonnenten werden nicht an den Verleger zurückgesendet. Sollte verwendet werden, wenn Aktualisierungen nicht auf dem Abonnenten vorgenommen werden.

    synctran

    Aktiviert die Unterstützung für das sofortige Aktualisieren von Abonnements.

    queued tran

    Aktiviert das verzögerte Aktualisieren über eine Warteschlange für das Abonnement. Daten können auf dem Abonnenten geändert werden. Die Änderungen werden in einer Warteschlange gespeichert und dann an den Verleger weitergegeben.

    failover

    Aktiviert das sofortige Aktualisieren für das Abonnement, wobei als Failover das verzögerte Aktualisieren über eine Warteschlange verwendet wird. Daten können auf dem Abonnenten geändert werden. Die Änderungen werden sofort an den Verleger weitergegeben. Wenn der Verleger und der Abonnent nicht verbunden sind, können Datenänderungen auf dem Abonnenten in einer Warteschlange gespeichert werden, bis Abonnent und Verleger erneut verbunden sind.

    queued failover

    Aktiviert das Abonnement als Abonnement mit verzögertem Update über eine Warteschlange mit der Möglichkeit, in den Sofortaktualisierungsmodus zu wechseln. Datenänderungen können auf dem Abonnenten vorgenommen und in einer Warteschlange gespeichert werden, bis eine Verbindung zwischen dem Abonnenten und dem Verleger hergestellt wird. Wenn eine kontinuierliche Verbindung hergestellt wird, kann der Aktualisierungsmodus in den Sofortaktualisierungsmodus geändert werden. Wird für Oracle-Verleger nicht unterstützt.

  • [ @immediate_sync =] immediate_sync
    Gibt an, ob die Synchronisierungsdateien bei jeder Ausführung des Snapshot-Agents erstellt oder neu erstellt werden. immediate_sync ist vom Datentyp bit; der Standard ist 1. Der Parameter muss auf den gleichen Wert festgelegt werden wie immediate_sync in sp_addpublication.immediate_sync ist eine Eigenschaft der Publikation; sie muss hier denselben Wert wie auf dem Verleger haben.

Rückgabecodewerte

0 (Erfolg) oder 1 (Fehler)

Hinweise

sp_addpullsubscription wird bei der Snapshot- und Transaktionsreplikation verwendet.

ms174392.security(de-de,SQL.90).gifSicherheitshinweis:
Bei Abonnements mit verzögerter Aktualisierung über eine Warteschlange verwenden Sie die SQL Server-Authentifizierung für Verbindungen mit Abonnenten. Geben Sie für die Verbindung zu den einzelnen Abonnenten jeweils ein anderes Konto an. Beim Erstellen eines Pullabonnements, das die verzögerte Aktualisierung über eine Warteschlange unterstützt, legt die Replikation immer die Verwendung der Windows-Authentifizierung für die Verbindung fest (für Pullabonnements kann die Replikation nicht auf Metadaten beim Abonnenten zugreifen, die für die Verwendung der SQL Server-Authentifizierung erforderlich sind). In diesem Fall sollten Sie nach dem Konfigurieren des Abonnements sp_changesubscription ausführen, um die Verbindung zu ändern, damit die SQL Server-Authentifizierung verwendet wird.

Falls die MSreplication_subscriptions (Transact-SQL)-Tabelle nicht auf dem Abonnenten vorhanden ist, wird sie von sp_addpullsubscription erstellt. Außerdem fügt sp_addpullsubscription der MSreplication_subscriptions (Transact-SQL)-Tabelle eine Zeile hinzu. Für Pullabonnements sollte sp_addsubscription (Transact-SQL) zuerst auf dem Verleger aufgerufen werden.

Berechtigungen

Nur Mitglieder der festen Serverrolle sysadmin oder der festen Datenbankrolle db_owner können sp_addpullsubscription 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;
SET @publication = N'AdvWorksProductTran';
SET @publisher = $(PubServer);
SET @publicationDB = N'AdventureWorks';

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

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

Siehe auch

Verweis

sp_addpullsubscription_agent (Transact-SQL)
sp_change_subscription_properties (Transact-SQL)
sp_droppullsubscription (Transact-SQL)
sp_helppullsubscription (Transact-SQL)
sp_helpsubscription_properties (Transact-SQL)
Gespeicherte Systemprozeduren (Transact-SQL)

Andere Ressourcen

Vorgehensweise: Erstellen eines Pullabonnements (Replikationsprogrammierung mit Transact-SQL)
How to: Create an Updatable Subscription to a Transactional Publication (Replication Transact-SQL Programming)
Abonnieren von Publikationen

Hilfe und Informationen

Informationsquellen für SQL Server 2005

Änderungsverlauf

Version Verlauf

12. Dezember 2006

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