Freigeben über


sp_attachsubscription (Transact-SQL)

Gilt für: SQL Server Azure SQL-Datenbank

Fügt eine vorhandene Abonnementdatenbank an einen beliebigen Abonnenten an. Diese gespeicherte Prozedur wird beim neuen Abonnenten in der master Datenbank ausgeführt.

Wichtig

Diese Funktion wurde als veraltet markiert und wird in einer zukünftigen Version entfernt. Dieses Feature sollte nicht in der neuen Entwicklung verwendet werden. Für Mergeveröffentlichungen, die mithilfe von parametrisierten Filtern partitioniert werden, ist es empfehlenswert, die neuen Funktionen von partitionierten Momentaufnahmen zu verwenden. Diese vereinfachen die Initialisierung zahlreicher Abonnements. Weitere Informationen finden Sie unter Erstellen einer Momentaufnahme für eine Mergeveröffentlichung mit parametrisierten Filtern. Für Publikationen, die nicht partitioniert sind, können Sie ein Abonnement mit einer Sicherung initialisieren. Weitere Informationen finden Sie unter Initialize a Transactional Subscription Without a Snapshotinitialisiert wird.

Transact-SQL-Syntaxkonventionen

Syntax

sp_attachsubscription
    [ @dbname = ] N'dbname'
    , [ @filename = ] N'filename'
    [ , [ @subscriber_security_mode = ] subscriber_security_mode ]
    [ , [ @subscriber_login = ] N'subscriber_login' ]
    [ , [ @subscriber_password = ] N'subscriber_password' ]
    [ , [ @distributor_security_mode = ] distributor_security_mode ]
    [ , [ @distributor_login = ] N'distributor_login' ]
    [ , [ @distributor_password = ] N'distributor_password' ]
    [ , [ @publisher_security_mode = ] publisher_security_mode ]
    [ , [ @publisher_login = ] N'publisher_login' ]
    [ , [ @publisher_password = ] N'publisher_password' ]
    [ , [ @job_login = ] N'job_login' ]
    [ , [ @job_password = ] N'job_password' ]
    [ , [ @db_master_key_password = ] N'db_master_key_password' ]
[ ; ]

Argumente

[ @dbname = ] N'dbname'

Gibt den Namen der Zielabonnementdatenbank an. @dbname ist "sysname" ohne Standard.

[ @filename = ] N'filename'

Der Name und der physische Speicherort der primären Datendatei (.mdf). @filename ist nvarchar(260), ohne Standard.

[ @subscriber_security_mode = ] subscriber_security_mode

Der Sicherheitsmodus des Abonnenten, der beim Synchronisieren mit einem Abonnenten verwendet werden soll. @subscriber_security_mode ist int, mit einem Standardwert von NULL.

Hinweis

Die Windows-Authentifizierung muss verwendet werden. Wenn @subscriber_security_mode nicht 1 (Windows-Authentifizierung) ist, wird eine Fehlermeldung angezeigt.

[ @subscriber_login = ] N'subscriber_login'

Der Anmeldename des Abonnenten, der beim Synchronisieren mit einem Abonnenten verwendet werden soll. @subscriber_login ist "sysname" mit der Standardeinstellung "NULL.

Hinweis

Dieser Parameter ist veraltet und wird für die Abwärtskompatibilität von Skripts beibehalten. Wenn @subscriber_security_mode nicht 1 angegeben ist und @subscriber_login angegeben ist, wird eine Fehlermeldung angezeigt.

[ @subscriber_password = ] N'subscriber_password'

Das Abonnentenkennwort. @subscriber_password ist "sysname" mit der Standardeinstellung "NULL.

Hinweis

Dieser Parameter ist veraltet und wird für die Abwärtskompatibilität von Skripts beibehalten. Wenn @subscriber_security_mode nicht 1 angegeben ist und @subscriber_password angegeben ist, wird eine Fehlermeldung angezeigt.

[ @distributor_security_mode = ] distributor_security_mode

Der Sicherheitsmodus, der beim Synchronisieren mit einem Verteiler verwendet werden soll. @distributor_security_mode ist int mit einem Standardwert von 1.

  • 0 Gibt die SQL Server-Authentifizierung an.
  • 1Gibt Windows-Authentifizierung

Verwenden Sie nach Möglichkeit die Windows-Authentifizierung.

[ @distributor_login = ] N'distributor_login'

Der Distributor login to use when connecting to a Distributor when synchronizeizing. @distributor_login ist "sysname" mit der Standardeinstellung "NULL. @distributor_login ist erforderlich, wenn @distributor_security_mode auf 0.

[ @distributor_password = ] N'distributor_password'

Das Händlerkennwort. @distributor_password ist "sysname" mit einem Standardwert von NULL. @distributor_password ist erforderlich, wenn @distributor_security_mode auf 0. Der Wert von @distributor_password muss kürzer als 120 Unicode-Zeichen sein.

Wichtig

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

[ @publisher_security_mode = ] publisher_security_mode

Der Beim Synchronisieren mit einem Publisher zu verwendende Sicherheitsmodus. @publisher_security_mode ist int, mit einem Standardwert von 1.

  • Wenn 0, gibt die SQL Server-Authentifizierung an.
  • Wenn 1, gibt die Windows-Authentifizierung an. Verwenden Sie nach Möglichkeit die Windows-Authentifizierung.

[ @publisher_login = ] N'publisher_login'

Die Anmeldung, die beim Herstellen einer Verbindung mit einem Publisher bei der Synchronisierung verwendet werden soll. @publisher_login ist "sysname" mit einem Standardwert von NULL.

[ @publisher_password = ] N'publisher_password'

Das Kennwort, das beim Herstellen einer Verbindung mit dem Publisher verwendet wird. @publisher_password ist "sysname" mit einem Standardwert von NULL. Der Wert von @publisher_password muss kürzer als 120 Unicode-Zeichen sein.

Wichtig

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

[ @job_login = ] N'job_login'

Die Anmeldung für das Windows-Konto, unter dem der Agent ausgeführt wird. @job_login ist nvarchar(257), ohne Standard. Das Windows-Konto wird stets für Agent-Verbindungen mit dem Verteiler verwendet.

[ @job_password = ] N'job_password'

Das Kennwort für das Windows-Konto, unter dem der Agent ausgeführt wird. @job_password ist "sysname" mit der Standardeinstellung "NULL. Der Wert von job_password muss kürzer als 120 Unicode-Zeichen sein.

Wichtig

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

[ @db_master_key_password = ] N'db_master_key_password'

Das Kennwort eines benutzerdefinierten Datenbankmasterschlüssels (DMK). @db_master_key_password ist nvarchar(524), wobei die Standardeinstellung istNULL. Wenn @db_master_key_password nicht angegeben ist, wird ein vorhandenes DMK gelöscht und neu erstellt.

Wichtig

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

Rückgabecodewerte

0 (erfolgreich) oder 1 Fehler.

Hinweise

sp_attachsubscription wird in der Momentaufnahmereplikation, Transaktionsreplikation und Zusammenführungsreplikation verwendet.

Ein Abonnement kann nicht an die Publikation angefügt werden, wenn der Aufbewahrungszeitraum für die Publikation abgelaufen ist. Wenn ein Abonnement mit einem verstrichenen Aufbewahrungszeitraum angegeben ist, tritt ein Fehler auf, wenn das Abonnement entweder angefügt oder zuerst synchronisiert wird. Publikationen mit einem Aufbewahrungszeitraum für 0 Veröffentlichungen (nie ablaufen) werden ignoriert.

Berechtigungen

Nur Mitglieder der festen Serverrolle sysadmin können ausgeführt werden sp_attachsubscription.