sp_changesubstatus (Transact-SQL)
Ändert den Status eines vorhandenen Abonnenten. Diese gespeicherte Prozedur wird beim Verleger mit der Veröffentlichungsdatenbank ausgeführt.
Syntax
sp_changesubstatus [ [ @publication = ] 'publication' ]
[ , [ @article = ] 'article' ]
[ , [ @subscriber = ] 'subscriber' ]
, [ @status = ] 'status'
[ , [ @previous_status = ] 'previous_status' ]
[ , [ @destination_db = ] 'destination_db' ]
[ , [ @frequency_type = ] frequency_type ]
[ , [ @frequency_interval = ] frequency_interval ]
[ , [ @frequency_relative_interval = ] frequency_relative_interval ]
[ , [ @frequency_recurrence_factor = ] frequency_recurrence_factor ]
[ , [ @frequency_subday = ] 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 ]
[ , [ @optional_command_line = ] 'optional_command_line' ]
[ , [ @distribution_jobid = ] distribution_jobid ]
[ , [ @from_auto_sync = ] from_auto_sync ]
[ , [ @ignore_distributor = ] ignore_distributor ]
[ , [ @offloadagent= ] remote_agent_activation ]
[ , [ @offloadserver= ] 'remote_agent_server_name' ]
[ , [ @dts_package_name= ] 'dts_package_name' ]
[ , [ @dts_package_password= ] 'dts_package_password' ]
[ , [ @dts_package_location= ] dts_package_location ]
[ , [ @skipobjectactivation = ] skipobjectactivation
[ , [ @distribution_job_name= ] 'distribution_job_name' ]
[ , [ @publisher = ] 'publisher' ]
Argumente
[ @publication=] 'publication'
Der Name der Veröffentlichung. publication ist vom Datentyp sysname, der Standardwert ist %. Wenn publication nicht angegeben wird, hat dies Auswirkungen auf alle Veröffentlichungen.[ @article=] 'article'
Der Name des Artikels. Dieser muss innerhalb der Veröffentlichung eindeutig sein. article ist vom Datentyp sysname und hat den Standardwert %. Wenn article nicht angegeben wird, hat dies Auswirkungen auf alle Artikel.[ @subscriber = ] 'subscriber'
Der Name des Abonnenten, dessen Status geändert werden soll. subscriber ist vom Datentyp sysname und hat den Standardwert %. Wenn subscriber nicht angegeben wird, wird der Status für alle Abonnenten des angegebenen Artikels geändert.[ @status=] 'status'
Der Abonnementstatus in der syssubscriptions-Tabelle. status ist vom Datentyp sysname und hat keinen Standardwert. Die folgenden Werte sind möglich:Wert
Beschreibung
active
Der Abonnent ist synchronisiert und empfängt Daten.
inactive
Es ist ein Eintrag für einen Abonnenten ohne Abonnement vorhanden.
subscribed
Der Abonnent fordert Daten an, ist aber noch nicht synchronisiert.
[ @previous_status=] 'previous_status'
Der vorherige Status des Abonnements. previous_status ist vom Datentyp sysname und hat den Standardwert NULL. Mit diesem Parameter können Sie Abonnements ändern, die aktuell diesen Status aufweisen. Er ermöglicht damit Gruppenfunktionen für bestimmte Abonnements (z. B. das Zurücksetzen aller aktiven Abonnements auf subscribed).[ @destination_db=] 'destination_db'
Der Name der Zieldatenbank. destination_db ist vom Datentyp sysname und hat den Standardwert %.[ @frequency_type=] frequency_type
Die Häufigkeit für die Zeitplanung des Verteilungstasks. frequency_type ist vom Datentyp int und hat den Standardwert NULL.[ @frequency_interval=] frequency_interval
Der Wert für die von frequency_type festgelegte Häufigkeit. frequency_interval ist vom Datentyp int; der Standardwert ist NULL.[ @frequency_relative_interval = ] frequency_relative_interval
Das Datum des Verteilungstasks. 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
Erster
2
Sekunde
4
Dritter
8
Vierter
16
Letzter
NULL (Standard)
[ @frequency_recurrence_factor=] frequency_recurrence_factor
Der von frequency_type verwendete Wiederholungsfaktor. frequency_recurrence_factor ist ein Wert vom Datentyp int, der Standardwert ist NULL.[ @frequency_subday=] frequency_subday
Die Häufigkeit (in Minuten) für die erneute geplante Ausführung während des definierten Zeitraumes. frequency_subday ist vom Datentyp int und kann einen der folgenden Werte haben.Wert
Beschreibung
1
Einmal
2
Sekunde
4
Minute
8
Stunde
NULL (Standard)
[ @frequency_subday_interval=] frequency_subday_interval
Das Intervall für frequency_subday. frequency_subday_interval ist vom Datentyp int und hat den Standardwert NULL.[ @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 NULL.[ @active_end_time_of_day=] active_end_time_of_day
Die Tageszeit, zu 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 NULL.[ @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 NULL.[ @active_end_date = ] active_end_date
Das Datum, an 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 NULL.[ @optional_command_line=] 'optional_command_line'
Eine optionale Eingabeaufforderung. optional_command_line ist vom Datentyp nvarchar(4000) und hat den Standardwert NULL.[ @distribution_jobid=] distribution_jobid
Die Auftrags-ID des Verteilungs-Agents auf dem Verteiler für das Abonnement, wenn der Abonnementstatus von inaktiv auf aktiv geändert wird. In anderen Fällen wird sie nicht definiert. Wenn mehrere Verteilungs-Agents an einem einzelnen Aufruf dieser gespeicherten Prozedur beteiligt sind, ist das Ergebnis nicht definiert. distribution_jobid ist vom Datentyp binary(16) und hat den Standardwert NULL.[ @from_auto_sync=] from_auto_sync
Nur für Informationszwecke identifiziert. Nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.[ @ignore_distributor = ] ignore_distributor
Nur für Informationszwecke identifiziert. Nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.[ @offloadagent= ] remote_agent_activation
Hinweis 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. Wenn remote_agent_activation auf einen anderen Wert als 0 festgelegt wird, wird ein Fehler generiert.
[ @offloadserver= ] 'remote_agent_server_name'
Hinweis 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. Wenn remote_agent_server_name auf einen beliebigen Wert ungleich NULL festgelegt wird, wird ein Fehler generiert.
[ @dts_package_name= ] 'dts_package_name'
Gibt den Namen des DTS-Pakets (Data Transformation Services) an. dts_package_name ist vom Datentyp sysname und hat den Standardwert NULL. Für ein Paket mit dem Namen DTSPub_Package würden Sie z. B. @dts_package_name = N'DTSPub_Package' angeben.[ @dts_package_password= ] 'dts_package_password'
Gibt das Kennwort für das Paket an. dts_package_password ist vom Datentyp sysname und hat den Standardwert NULL, der angibt, dass die Kennworteigenschaft nicht geändert wird.Hinweis Ein DTS-Paket muss mit einem Kennwort versehen sein.
[ @dts_package_location= ] dts_package_location
Gibt den Paketspeicherort an. dts_package_location ist vom Datentyp int und hat den Standardwert 0. Wenn der Wert 0 gilt, befindet sich der Speicherort des Pakets auf dem Verteiler. Wenn der Wert 1 gilt, befindet sich der Speicherort des Pakets auf dem Abonnenten. Der Speicherort des Pakets kann distributor oder subscriber sein.[ @skipobjectactivation= ] skipobjectactivation
Nur für Informationszwecke identifiziert. Nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.[ @distribution_job_name = ] 'distribution_job_name'
Der Name des Verteilungsauftrags. distribution_job_name ist vom Datentyp sysname und hat den Standardwert NULL.[ @publisher= ] 'publisher'
Gibt einen Nicht-Microsoft SQL Server-Verleger an. publisher ist ein Wert vom Datentyp sysname; der Standardwert ist NULL.Hinweis publisher sollte nicht beim Ändern von Artikeleigenschaften für einen SQL Server-Verleger verwendet werden.
Rückgabecodewerte
0 (Erfolg) oder 1 (Fehler)
Hinweise
sp_changesubstatus wird bei der Snapshot- und Transaktionsreplikation verwendet.
sp_changesubstatus ändert den Status des Abonnenten in der syssubscriptions-Tabelle auf den geänderten Status. Falls erforderlich, wird auch der Artikelstatus in der sysarticles-Tabelle aktualisiert, um die Aktivität bzw. Inaktivität anzuzeigen. Falls erforderlich, wird das Replikationsflag in der sysobjects-Tabelle der replizierten Tabelle aktiviert bzw. deaktiviert.
Berechtigungen
Nur Mitglieder der festen Serverrolle sysadmin, der festen Datenbankrolle db_owner und der Ersteller des Abonnements können sp_changesubstatus ausführen.