Freigeben über


sp_addpullsubscription_agent (Transact-SQL)

Fügt einer Transaktionsveröffentlichung einen neuen geplanten Agent-Auftrag hinzu, mit dem ein Pullabonnement synchronisiert wird. Diese gespeicherte Prozedur wird auf dem Abonnenten für die Abonnementdatenbank ausgeführt.

Themenlink (Symbol)Transact-SQL-Syntaxkonventionen

Syntax

sp_addpullsubscription_agent [ @publisher = ] 'publisher'
    [ , [ @publisher_db = ] 'publisher_db' ]
        , [ @publication = ] 'publication'
    [ , [ @subscriber = ] 'subscriber' ]
    [ , [ @subscriber_db = ] 'subscriber_db' ]
    [ , [ @subscriber_security_mode = ] subscriber_security_mode ]
    [ , [ @subscriber_login = ] 'subscriber_login' ]
    [ , [ @subscriber_password = ] 'subscriber_password' ]
    [ , [ @distributor = ] 'distributor' ]
    [ , [ @distribution_db = ] 'distribution_db' ]
    [ , [ @distributor_security_mode = ] distributor_security_mode ]
    [ , [ @distributor_login = ] 'distributor_login' ]
    [ , [ @distributor_password = ] 'distributor_password' ]
    [ , [ @optional_command_line = ] 'optional_command_line' ]
    [ , [ @frequency_type = ] frequency_type ]
    [ , [ @frequency_interval = ] frequency_interval ]
    [ , [ @frequency_relative_interval = ] frequency_relative_interval ]
    [ , [ @frequency_recurrence_factor = ] frequency_recurrence_factor ]
    [ , [ @frequency_subda y= ] frequency_subday ]
    [ , [ @frequency_subday_interval = ] frequency_subday_interval ]
    [ , [ @active_start_time_of_day = ] active_start_time_of_day ]
    [ , [ @active_end_time_of_day = ] active_end_time_of_day ]
    [ , [ @active_start_date = ] active_start_date ]
    [ , [ @active_end_date = ] active_end_date ]
    [ , [ @distribution_jobid = ] distribution_jobid OUTPUT ]
    [ , [ @encrypted_distributor_password = ] encrypted_distributor_password ]
    [ , [ @enabled_for_syncmgr = ] 'enabled_for_syncmgr' ]
    [ , [ @ftp_address = ] 'ftp_address' ]
    [ , [ @ftp_port = ] ftp_port ]
    [ , [ @ftp_login = ] 'ftp_login' ]
    [ , [ @ftp_password = ] 'ftp_password' ]
    [ , [ @alt_snapshot_folder = ] 'alternate_snapshot_folder' ]
    [ , [ @working_directory = ] 'working_directory' ]
    [ , [ @use_ftp = ] 'use_ftp' ]
    [ , [ @publication_type = ] publication_type ]
    [ , [ @dts_package_name = ] 'dts_package_name' ]
    [ , [ @dts_package_password = ] 'dts_package_password' ]
    [ , [ @dts_package_location = ] 'dts_package_location' ]
    [ , [ @reserved = ] 'reserved' ]
    [ , [ @offloadagent = ] 'remote_agent_activation' ]
    [ , [ @offloadserver = ] 'remote_agent_server_name']
    [ , [ @job_name = ] 'job_name' ]
    [ , [ @job_login = ] 'job_login' ] 
    [ , [ @job_password = ] 'job_password' ] 

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 und hat den Standardwert NULL. publisher_db wird von Oracle-Verlegern ignoriert.

  • [ @publication=] 'publication'
    Der Name der Veröffentlichung. publication ist ein Wert vom Datentyp sysname und weist keinen Standardwert auf.

  • [ @subscriber=] 'subscriber'
    Der Name des Abonnenten. subscriber ist vom Datentyp sysname und hat den Standardwert NULL.

    HinweisHinweis

    Dieser Parameter wurde als veraltet markiert und wird aus Gründen der Abwärtskompatibilität von Skripts beibehalten.

  • [ @subscriber_db=] 'subscriber_db'
    Der Name der Abonnementdatenbank. subscriber_db ist vom Datentyp sysname und hat den Standardwert NULL.

    HinweisHinweis

    Dieser Parameter wurde als veraltet markiert und wird aus Gründen der Abwärtskompatibilität von Skripts beibehalten.

  • [ @subscriber_security_mode=] subscriber_security_mode
    Der Sicherheitsmodus, der beim Synchronisieren zum Herstellen der Verbindung mit einem Abonnenten verwendet wird. subscriber_security_mode ist vom Datentyp int, und hat den Standardwert NULL. 0 gibt die SQL Server-Authentifizierung an. 1 gibt die Windows-Authentifizierung an.

    HinweisHinweis

    Dieser Parameter wurde als veraltet markiert und wird aus Gründen der Abwärtskompatibilität von Skripts beibehalten. Der Verteilungs-Agent stellt eine Verbindung mit dem lokalen Abonnenten immer mithilfe der Windows-Authentifizierung her. Wird für den Parameter ein anderer Wert als NULL oder 1 angegeben, wird eine Warnmeldung zurückgegeben.

  • [ @subscriber_login =] 'subscriber_login'
    Der Anmeldename des Abonnenten, der beim Synchronisieren zum Herstellen der Verbindung mit einem Abonnenten verwendet wird.subscriber_login ist vom Datentyp sysname und hat den Standardwert NULL.

    HinweisHinweis

    Dieser Parameter wurde als veraltet markiert und wird aus Gründen der Abwärtskompatibilität von Skripts beibehalten. Wird für diesen Parameter ein Wert angegeben, wird eine Warnmeldung zurückgegeben, der Wert jedoch ignoriert.

  • [ @subscriber_password=] 'subscriber_password'
    Das Abonnentenkennwort. subscriber_password ist erforderlich, wenn subscriber_security_mode auf 0 festgelegt wird. subscriber_password ist vom Datentyp sysname und hat den Standardwert NULL. Bei Verwendung eines Abonnentenkennworts wird dieses automatisch verschlüsselt.

    HinweisHinweis

    Dieser Parameter wurde als veraltet markiert und wird aus Gründen der Abwärtskompatibilität von Skripts beibehalten. Wird für diesen Parameter ein Wert angegeben, wird eine Warnmeldung zurückgegeben, der Wert jedoch ignoriert.

  • [ @distributor=] 'distributor'
    Der Name des Verteilers. distributor ist vom Datentyp sysname und hat den von publisher angegebenen Wert als Standardwert.

  • [ @distribution_db=] 'distribution_db'
    Der Name der Verteilungsdatenbank. distribution_db ist vom Datentyp sysname und hat den Standardwert NULL.

  • [ @distributor_security_mode=] distributor_security_mode
    Der Sicherheitsmodus, der beim Synchronisieren zum Herstellen der Verbindung mit einem Verteiler verwendet wird. distributor_security_mode ist vom Datentyp int und hat den Standardwert 1. 0 gibt die SQL Server-Authentifizierung an. 1 gibt die Windows-Authentifizierung an.

    SicherheitshinweisSicherheitshinweis

    Verwenden Sie nach Möglichkeit die Windows-Authentifizierung.

  • [ @distributor_login=] 'distributor_login'
    Der Anmeldename des Verteilers, der beim Synchronisieren zum Herstellen der Verbindung mit einem Verteiler verwendet wird. distributor_login ist erforderlich, wenn distributor_security_mode auf 0 festgelegt wird. distributor_login ist vom Datentyp sysname und hat den Standardwert NULL.

  • [ @distributor_password =] 'distributor_password'
    Das Verteilerkennwort. distributor_password ist erforderlich, wenn distributor_security_mode auf 0 festgelegt wird. distributor_password ist vom Datentyp sysname und hat den Standardwert NULL.

    SicherheitshinweisSicherheitshinweis

    Verwenden Sie kein leeres Kennwort. Verwenden Sie ein sicheres Kennwort. Benutzer sollten nach Möglichkeit dazu aufgefordert werden, Sicherheitsanmeldeinformationen zur Laufzeit anzugeben.Wenn Anmeldeinformationen in einer Skriptdatei gespeichert werden müssen, müssen Sie die Datei an einem sicheren Ort speichern, um unberechtigten Zugriff zu vermeiden.

  • [ @optional_command_line=] 'optional_command_line'
    Eine optionale Befehlszeile des Verteilungs-Agents. Beispiel: -DefinitionFile C:\Distdef.txt oder -CommitBatchSize 10. optional_command_line ist vom Datentyp nvarchar(4000) und hat eine leere Zeichenfolge als Standardwert.

  • [ @frequency_type=] frequency_type
    Die Häufigkeit für die Planung des Verteilungs-Agents. frequency_type ist vom Datentyp int. Die folgenden Werte sind möglich:

    Wert

    Beschreibung

    1

    Einmal

    2 (Standard)

    Bedarfsgesteuert

    4

    Täglich

    8

    Wöchentlich

    16

    Monatlich

    32

    Monatlich, relativ

    64

    Autostart

    128

    Wiederholt

    HinweisHinweis

    Durch die Angabe des Werts 64 wird der Verteilungs-Agent im fortlaufenden Modus ausgeführt. Dies entspricht dem Festlegen des -Continuous-Parameters für den Agent. Weitere Informationen finden Sie unter Replikationsverteilungs-Agent.

  • [ @frequency_interval=] frequency_interval
    Der Wert, der auf die durch frequency_type festgelegte Häufigkeit angewendet werden soll. frequency_interval ist vom Datentyp int und hat den Standardwert 1.

  • [ @frequency_relative_interval=] frequency_relative_interval
    Das Datum des Verteilungs-Agents. Dieser Parameter wird verwendet, wenn frequency_type auf 32 (monatlich, relativ) festgelegt wird. frequency_relative_interval ist vom Datentyp int. Die folgenden Werte sind möglich:

    Wert

    Beschreibung

    1 (Standard)

    Erster

    2

    Zweiter

    4

    Dritter

    8

    Vierter

    16

    Letzter

  • [ @frequency_recurrence_factor=] frequency_recurrence_factor
    Der von frequency_type verwendete Wiederholungsfaktor. frequency_recurrence_factor ist vom Datentyp int und hat den Standardwert 1.

  • [ @frequency_subday=] frequency_subday
    Die Häufigkeit der erneuten Planung während des definierten Zeitraumes. frequency_subday ist vom Datentyp int. Die folgenden Werte sind möglich:

    Wert

    Beschreibung

    1 (Standard)

    Einmal

    2

    Sekunde

    4

    Minute

    8

    Stunde

  • [ @frequency_subday_interval=] frequency_subday_interval
    Das Intervall für frequency_subday. frequency_subday_interval ist vom Datentyp int und hat den Standardwert 1.

  • [ @active_start_time_of_day=] active_start_time_of_day
    Die Tageszeit, zu der der Verteilungs-Agent zum ersten Mal geplant ist. Dabei wird das Format HHMMSS verwendet. active_start_time_of_day ist vom Datentyp int und hat den Standardwert 0.

  • [ @active_end_time_of_day=] active_end_time_of_day
    Die Tageszeit, ab der der Verteilungs-Agent nicht mehr geplant ist. Dabei wird das Format HHMMSS verwendet. active_end_time_of_day ist vom Datentyp int und hat den Standardwert 0.

  • [ @active_start_date=] active_start_date
    Das Datum, an dem der Verteilungs-Agent zum ersten Mal geplant ist. Dabei wird das Format YYYYMMDD verwendet. active_start_date ist vom Datentyp int und hat den Standardwert 0.

  • [ @active_end_date=] active_end_date
    Das Datum, ab dem der Verteilungs-Agent nicht mehr geplant ist. Dabei wird das Format YYYYMMDD verwendet. active_end_date ist vom Datentyp int und hat den Standardwert 0.

  • [ @distribution_jobid =] distribution_jobidOUTPUT
    Die Auftrags-ID des Verteilungs-Agents. distribution_jobid ist vom Datentyp binary(16), hat den Standardwert NULL und ist ein OUTPUT-Parameter.

  • [ @encrypted_distributor_password=] encrypted_distributor_password
    Das Festlegen von encrypted_distributor_password wird nicht mehr unterstützt. Der Versuch, diesen bit-Parameter auf 1 festzulegen, führt zu einem Fehler.

  • [ @enabled_for_syncmgr=] 'enabled_for_syncmgr'
    Gibt an, ob das Abonnement mit der Synchronisierungsverwaltung von Microsoft synchronisiert werden kann. enabled_for_syncmgr ist vom Datentyp nvarchar(5) und hat den Standardwert FALSE. Bei false wird das Abonnement nicht bei der Synchronisierungsverwaltung registriert. Bei true wird das Abonnement bei der Synchronisierungsverwaltung registriert und kann synchronisiert werden, ohne SQL Server Management Studio zu starten.

  • [ @ftp_address=] 'ftp_address'
    Nur aus Gründen der Abwärtskompatibilität beibehalten.

  • [ @ftp_port=] ftp_port
    Nur aus Gründen der Abwärtskompatibilität beibehalten.

  • [ @ftp_login=] 'ftp_login'
    Nur aus Gründen der Abwärtskompatibilität beibehalten.

  • [ @ftp_password=] 'ftp_password'
    Nur aus Gründen der Abwärtskompatibilität beibehalten.

  • [ @alt_snapshot_folder= ] **'**alternate_snapshot_folder'
    Gibt den Speicherort des alternativen Ordners für den Snapshot an. alternate_snapshot_folder ist vom Datentyp nvarchar(255) und hat den Standardwert NULL.

  • [ @working_directory= ] 'working_director'
    Der Name des zum Speichern von Daten- und Schemadateien für die Veröffentlichung verwendeten Arbeitsverzeichnisses. working_directory ist vom Datentyp nvarchar(255) und hat den Standardwert NULL. Dieser Name sollte im UNC-Format angegeben werden.

  • [ @use_ftp= ] 'use_ftp'
    Gibt an, dass FTP anstelle des regulären Protokolls zum Abrufen von Snapshots verwendet wird. use_ftp ist vom Datentyp nvarchar(5) und hat den Standardwert FALSE.

  • [ @publication_type= ] publication_type
    Gibt den Replikationstyp der Veröffentlichung an. publication_type ist vom Datentyp tinyint und hat den Standardwert 0. Bei 0 handelt es sich um Transaktionsreplikation. Bei 1 handelt es sich um Snapshotreplikation. Bei 2 handelt es sich um Mergereplikation.

  • [ @dts_package_name= ] 'dts_package_name'
    Gibt den Namen des DTS-Pakets an. dts_package_name ist vom Datentyp sysname und hat den Standardwert NULL. Zum Angeben eines Pakets mit dem Namen DTSPub_Package wird beispielsweise der @dts\_package\_name = N'DTSPub_Package'-Parameter verwendet.

  • [ @dts_package_password= ] 'dts_package_password'
    Gibt ggf. das Kennwort für das Paket an. dts_package_password ist vom Datentyp sysname und hat Standardwert NULL. In diesem Fall ist kein Kennwort für das Paket vorhanden.

    HinweisHinweis

    Sie müssen ein Kennwort angeben, wenn dts_package_name angegeben wird.

  • [ @dts_package_location= ] 'dts_package_location'
    Gibt den Speicherort für das Paket an. dts_package_location ist vom Datentyp nvarchar(12) und hat den Standardwert subscriber. Der Speicherort des Pakets kann distributor oder subscriber sein.

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

  • [ @offloadagent= ] 'remote_agent_activation'

    HinweisHinweis

    Die Aktivierung des Remote-Agents wurde als veraltet markiert und wird nicht mehr unterstützt. Dieser Parameter wird nur zur Aufrechterhaltung der Abwärtskompatibilität von Skripts unterstützt. Beim Festlegen von remote_agent_activation auf einen anderen Wert als false wird ein Fehler generiert.

  • [ @offloadserver= ] 'remote_agent_server_name'

    HinweisHinweis

    Die Aktivierung des Remote-Agents wurde als veraltet markiert und wird nicht mehr unterstützt. Dieser Parameter wird nur zur Aufrechterhaltung der Abwärtskompatibilität von Skripts unterstützt. Beim Festlegen von remote_agent_server_name auf einen Wert ungleich NULL wird ein Fehler generiert.

  • [ @job_name= ] 'job_name'
    Der Name eines vorhandenen Agentauftrags. job_name ist vom Datentyp sysname und hat den Standardwert NULL. Dieser Parameter wird nur angegeben, wenn das Abonnement mithilfe eines vorhandenen Auftrags statt mit einem neu erstellten Auftrag (Standard) synchronisiert wird. Wenn Sie kein Mitglied der festen Serverrolle sysadmin sind, müssen Sie job_login und job_password angeben, wenn Sie job_name angeben.

  • [ @job_login= ] 'job_login'
    Der Anmeldename für das Windows-Konto, unter dem der Agent ausgeführt wird. job_login ist vom Datentyp nvarchar(257) und hat keinen Standardwert. Dieses Windows-Konto wird immer für Agent-Verbindungen mit dem Abonnenten verwendet.

  • [ @job_password= ] 'job_password'
    Das Kennwort für das Windows-Konto, unter dem der Agent ausgeführt wird. job_password ist vom Datentyp sysname und hat keinen Standardwert.

    SicherheitshinweisSicherheitshinweis

    Fordern Sie nach Möglichkeit die Benutzer zur Laufzeit auf, die Sicherheitsanmeldeinformationen einzugeben. Wenn Anmeldeinformationen in einer Skriptdatei gespeichert werden müssen, müssen Sie die Datei an einem sicheren Ort speichern, um unberechtigten Zugriff zu vermeiden.

Rückgabecodewerte

0 (Erfolg) oder 1 (Fehler)

Hinweise

sp_addpullsubscription_agent wird bei der Snapshot- und Transaktionsreplikation verwendet.

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

Berechtigungen

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