Freigeben über


sp_changesubscription (Transact-SQL)

Gilt für: SQL Server Azure SQL Managed Instance

Ändert die Eigenschaften eines Momentaufnahme- oder Transaktionspushabonnements bzw. eines Pullabonnements, das an einem verzögerten Update über eine Warteschlange beteiligt ist. Verwenden Sie sp_change_subscription_properties, um die Eigenschaften aller anderen Arten von Pullabonnements zu ändern. sp_changesubscription wird im Publisher in der Publikationsdatenbank ausgeführt.

Wichtig

Beim Konfigurieren eines Herausgebers mit einem Remoteverteiler werden die für alle Parameter bereitgestellten Werte, einschließlich @job_login und @job_password, als Nur-Text an den Distributor gesendet. Sie sollten die Verbindung zwischen dem Verleger und dem zugehörigen Remoteverteiler verschlüsseln, bevor Sie diese gespeicherte Prozedur ausführen. Weitere Informationen finden Sie unter Konfigurieren der SQL Server-Datenbank-Engine zum Verschlüsseln von Verbindungen.

Transact-SQL-Syntaxkonventionen

Syntax

sp_changesubscription
    [ @publication = ] N'publication'
    , [ @article = ] N'article'
    , [ @subscriber = ] N'subscriber'
    , [ @destination_db = ] N'destination_db'
    , [ @property = ] N'property'
    , [ @value = ] N'value'
    [ , [ @publisher = ] N'publisher' ]
[ ; ]

Argumente

[ @publication = ] N'Publikation'

Der Name der zu ändernden Publikation. @publication ist "sysname" ohne Standard.

[ @article = ] N'article'

Der Name des zu ändernden Artikels. @article ist "sysname" ohne Standard.

[ @subscriber = ] N'subscriber'

Den Namen des Abonnenten. @subscriber ist "sysname" ohne Standard.

[ @destination_db = ] N'destination_db'

Der Name der Abonnementdatenbank. @destination_db ist "sysname" ohne Standard.

[ @property = ] N'property'

Die Eigenschaft, die für das angegebene Abonnement geändert werden soll. @property ist nvarchar(30) und kann einer der Werte in der Tabelle sein.

[ @value = ] N'value'

Der neue Wert für die angegebene Eigenschaft. @value ist nvarchar(4000) und kann einer der Werte in der Tabelle sein.

Eigenschaft Wert Beschreibung
distrib_job_login Anmeldename für das Windows-Konto, unter dem der Agent ausgeführt wird.
distrib_job_password Kennwort für das Windows-Konto, unter dem der Agent ausgeführt wird.
subscriber_catalog 1 Katalog, der beim Herstellen einer Verbindung mit dem OLE DB-Anbieter verwendet werden soll.
subscriber_datasource 1 Name der Datenquelle im vom OLE DB-Anbieter unterstützten Format.
subscriber_location 1 Speicherort der Datenbank, wie vom OLE DB-Anbieter verstanden.
subscriber_login Anmeldename auf dem Abonnenten.
subscriber_password Sicheres Kennwort für den angegebenen Anmeldenamen.
subscriber_security_mode 1 Verwendung der Windows-Authentifizierung für die Verbindung mit dem Abonnenten.
0 Verwenden Sie die SQL Server-Authentifizierung beim Herstellen einer Verbindung mit dem Abonnenten.
subscriber_provider 1 Eindeutiger Programmbezeichner (PROGID, Programmatic Identifier), mit dem der OLE DB-Anbieter für die Nicht-SQL Server-Datenquelle registriert wird.
subscriber_providerstring 1 Für den OLE DB-Anbieter spezifische Verbindungszeichenfolge, die die Datenquelle identifiziert.
subscriptionstreams Die Anzahl der pro Verteilungs-Agent zulässigen Verbindungen, um Batches von Änderungen parallel zu einem Abonnenten anzuwenden. Ein Wertebereich von 1 bis zu 64 wird für SQL Server-Herausgeber unterstützt. Diese Eigenschaft muss für Nicht-SQL Server-Abonnenten, Oracle-Herausgeber oder Peer-to-Peer-Abonnements gelten 0 .
subscriber_type 1 ODBC-Datenquellenserver
3 OLE DB-Anbieter
memory_optimized bit Gibt an, dass das Abonnement speicheroptimierte Tabellen unterstützt. memory_optimized ist bit, where 1 is true (the subscription supports memory optimized tables).

1 Diese Eigenschaft ist nur für Nicht-SQL Server-Abonnenten gültig.

[ @publisher = ] N'publisher'

Gibt einen Nicht-SQL Server-Herausgeber an. @publisher ist "sysname" mit der Standardeinstellung "NULL.

@publisher sollte für einen SQL Server-Herausgeber nicht angegeben werden.

Rückgabecodewerte

0 (erfolgreich) oder 1 Fehler.

Hinweise

sp_changesubscription wird in der Momentaufnahme- und Transaktionsreplikation verwendet.

sp_changesubscription kann nur verwendet werden, um die Eigenschaften von Pushabonnements oder Pullabonnements zu ändern, die an der Aktualisierung der Transaktionsreplikation in der Warteschlange beteiligt sind. Verwenden Sie sp_change_subscription_properties, um die Eigenschaften aller anderen Arten von Pullabonnements zu ändern.

Nach dem Ändern des Anmeldenamens oder Kennworts eines Agents müssen Sie den Agent beenden und neu starten, damit die Änderungen in Kraft treten.

Berechtigungen

Nur Mitglieder der festen Serverrolle sysadmin oder db_owner feste Datenbankrolle können ausgeführt werden sp_changesubscription.