Freigeben über


sp_changepublication (Transact-SQL)

Ändert die Eigenschaften einer Veröffentlichung. Diese gespeicherte Prozedur wird auf dem Verleger für die Veröffentlichungsdatenbank ausgeführt.

Themenlink (Symbol) Transact-SQL-Syntaxkonventionen

Syntax

sp_changepublication [ [ @publication = ] 'publication' ]
    [ , [ @property = ] 'property' ]
    [ , [ @value = ] 'value' ]
    [ , [ @force_invalidate_snapshot = ] force_invalidate_snapshot ]
    [ , [ @force_reinit_subscription = ] force_reinit_subscription ]
    [ , [ @publisher = ] 'publisher' ]

Argumente

  • [ @publication = ] 'publication'
    Der Name der Veröffentlichung. publication ist vom Datentyp sysname und hat den Standardwert NULL.

  • [ @property = ] 'property'
    Der Name der zu ändernden Veröffentlichungseigenschaft. property ist vom Datentyp nvarchar(255).

  • [ @value = ] 'value'
    Der neue Eigenschaftswert. value ist vom Datentyp nvarchar(255) und hat den Standardwert NULL.

    Diese Tabelle beschreibt die änderbaren Eigenschaften der Veröffentlichung sowie die Einschränkungen für die Werte dieser Eigenschaften.

    Eigenschaft

    Wert

    Beschreibung

    allow_anonymous

    true

    Für die Veröffentlichung können anonyme Abonnements erstellt werden, und immediate_sync muss ebenfalls den Wert true haben. Kann für Peer-zu-Peer-Veröffentlichungen nicht geändert werden.

     

    false

    Anonyme Abonnements können für die Veröffentlichung nicht erstellt werden. Kann für Peer-zu-Peer-Veröffentlichungen nicht geändert werden.

    allow_initialize_from_backup

    true

    Abonnenten können ein Abonnement für diese Veröffentlichung aus einer Sicherung statt aus einer Anfangsmomentaufnahme initialisieren. Diese Eigenschaft kann für Nicht-Microsoft SQL Server-Veröffentlichungen nicht geändert werden.

     

    false

    Abonnenten müssen die Anfangsmomentaufnahme verwenden. Diese Eigenschaft kann für Nicht-SQL Server-Veröffentlichungen nicht geändert werden.

    allow_partition_switch

    true

    ALTER TABLE…SWITCH-Anweisungen können für die veröffentlichte Datenbank ausgeführt werden. Weitere Informationen finden Sie unter Replizieren partitionierter Tabellen und Indizes.

    false

    ALTER TABLE…SWITCH-Anweisungen können nicht für die veröffentlichte Datenbank ausgeführt werden.

    allow_pull

    true

    Pullabonnements sind für die angegebene Veröffentlichung zulässig. Diese Eigenschaft kann für Nicht-SQL Server-Veröffentlichungen nicht geändert werden.

     

    false

    Pullabonnements sind für die Veröffentlichung nicht zulässig. Diese Eigenschaft kann für Nicht-SQL Server-Veröffentlichungen nicht geändert werden.

    allow_push

    true

    Pushabonnements sind für die angegebene Veröffentlichung zulässig.

     

    false

    Pushabonnements sind für die Veröffentlichung nicht zulässig.

    allow_subscription_copy

    true

    Aktiviert die Möglichkeit zum Kopieren von Datenbanken, die diese Veröffentlichung abonnieren. Diese Eigenschaft kann für Nicht-SQL Server-Veröffentlichungen nicht geändert werden.

     

    false

    Deaktiviert die Möglichkeit zum Kopieren von Datenbanken, die diese Veröffentlichung abonnieren. Diese Eigenschaft kann für Nicht-SQL Server-Veröffentlichungen nicht geändert werden.

    alt_snapshot_folder

     

    Der Speicherort des alternativen Ordners für die Momentaufnahme.

    centralized_conflicts

    true

    Die Konfliktdatensätze werden auf dem Verleger gespeichert. Kann nur geändert werden, wenn keine aktiven Abonnements vorhanden sind. Diese Eigenschaft kann für Nicht-SQL Server-Veröffentlichungen nicht geändert werden.

     

    false

    Die Konfliktdatensätze werden auf dem Verleger und auf dem Abonnenten gespeichert, der den Konflikt verursacht hat. Kann nur geändert werden, wenn keine aktiven Abonnements vorhanden sind. Diese Eigenschaft kann für Nicht-SQL Server-Veröffentlichungen nicht geändert werden.

    compress_snapshot

    true

    Die Momentaufnahme in einem alternativen Momentaufnahmeordner wird in das CAB-Dateiformat komprimiert. Die Momentaufnahme im Standardmomentaufnahmeordner kann nicht komprimiert werden.

     

    false

    Die Momentaufnahme wird nicht komprimiert. Dies ist das Standardverhalten für die Replikation.

    conflict_policy

    pub wins

    Richtlinie zur Konfliktlösung für Updateabonnenten, bei der der Verleger den Konflikt gewinnt. Diese Eigenschaft kann nur geändert werden, wenn keine aktiven Abonnements vorhanden sind. Wird für Oracle-Verleger nicht unterstützt.

     

    sub reinit

    Wenn für Updateabonnenten ein Konflikt auftritt, muss das Abonnement erneut initialisiert werden. Diese Eigenschaft kann nur geändert werden, wenn keine aktiven Abonnements vorhanden sind. Wird für Oracle-Verleger nicht unterstützt.

     

    sub wins

    Richtlinie zur Konfliktlösung für Updateabonnenten, bei der der Abonnent den Konflikt gewinnt. Diese Eigenschaft kann nur geändert werden, wenn keine aktiven Abonnements vorhanden sind. Wird für Oracle-Verleger nicht unterstützt.

    conflict_retention

     

    Ein Wert vom Datentyp int, der die Konfliktaufbewahrungsdauer in Tagen angibt. Die Standardaufbewahrungsdauer beträgt 14 Tage. 0 bedeutet, dass kein Konfliktcleanup notwendig ist. Wird für Oracle-Verleger nicht unterstützt.

    description

     

    Eine optionale Beschreibung der Veröffentlichung.

    enabled_for_het_sub

    true

    Aktiviert die Unterstützung von Nicht-SQL Server-Abonnenten durch die Veröffentlichung. enabled_for_het_sub kann nicht geändert werden, wenn Abonnements für die Veröffentlichung vorhanden sind. Möglicherweise müssen Sie sp_changepublication (Transact-SQL) ausführen, um den folgenden Anforderungen zu entsprechen, bevor Sie enabled_for_het_sub auf true festlegen:

    • allow_queued_tran muss den Wert false aufweisen.

    • allow_sync_tran muss den Wert false haben.

    Durch das Ändern von enabled_for_het_sub in true werden möglicherweise vorhandene Veröffentlichungseinstellungen geändert. Weitere Informationen finden Sie unter Nicht-SQL Server-Abonnenten. Diese Eigenschaft kann für Nicht-SQL Server-Veröffentlichungen nicht geändert werden.

    false

    Die Veröffentlichung unterstützt Nicht-SQL Server-Abonnenten nicht. Diese Eigenschaft kann für Nicht-SQL Server-Veröffentlichungen nicht geändert werden.

    enabled_for_internet

    true

    Die Veröffentlichung ist für das Internet aktiviert. FTP (File Transfer Protocol) kann dazu verwendet werden, die Momentaufnahmedateien an einen Abonnenten zu übermitteln. Die Synchronisierungsdateien für die Veröffentlichung werden im folgenden Verzeichnis abgelegt: C:\Programme\Microsoft SQL Server\MSSQL\Repldata\ftp. ftp_address darf nicht NULL sein. Diese Eigenschaft kann für Nicht-SQL Server-Veröffentlichungen nicht geändert werden.

     

    false

    Die Veröffentlichung ist nicht für das Internet aktiviert. Diese Eigenschaft kann für Nicht-SQL Server-Veröffentlichungen nicht geändert werden.

    enabled_for_p2p

    true

    Die Veröffentlichung unterstützt die Peer-zu-Peer-Replikation. Diese Eigenschaft kann für Nicht-SQL Server-Veröffentlichungen nicht geändert werden.

    Für das Festlegen von enabled_for_p2p auf true gelten die folgenden Einschränkungen:

    • allow_anonymous muss den Wert false haben.

    • allow_dts muss den Wert false haben.

    • allow_initialize_from_backup muss den Wert true haben.

    • allow_queued_tran muss den Wert false aufweisen.

    • allow_sync_tran muss den Wert false haben.

    • enabled_for_het_sub muss den Wert false haben.

    • independent_agent muss den Wert true haben.

    • repl_freq muss den Wert continuous haben.

    • replicate_ddl muss den Wert 1 haben.

    false

    Die Veröffentlichung unterstützt die Peer-zu-Peer-Replikation nicht. Diese Eigenschaft kann für Nicht-SQL Server-Veröffentlichungen nicht geändert werden.

    ftp_address

     

    Der Speicherort der Veröffentlichungsmomentaufnahmedateien, auf den über FTP zugegriffen werden kann. Diese Eigenschaft kann für Nicht-SQL Server-Veröffentlichungen nicht geändert werden.

    ftp_login

     

    Der Benutzername, mit dem eine Verbindung mit dem FTP-Dienst hergestellt wird. Der Wert ANONYMOUS ist zulässig. Diese Eigenschaft kann für Nicht-SQL Server-Veröffentlichungen nicht geändert werden.

    ftp_password

     

    Das Kennwort für den Benutzernamen, mit dem eine Verbindung mit dem FTP-Dienst hergestellt wird. Diese Eigenschaft kann für Nicht-SQL Server-Veröffentlichungen nicht geändert werden.

    ftp_port

     

    Die Nummer des Anschlusses für den FTP-Dienst des Verteilers. Diese Eigenschaft kann für Nicht-SQL Server-Veröffentlichungen nicht geändert werden.

    ftp_subdirectory

     

    Gibt an, wo die Momentaufnahmedateien erstellt werden, wenn die Veröffentlichung das Verteilen von Momentaufnahmen mithilfe von FTP unterstützt. Diese Eigenschaft kann für Nicht-SQL Server-Veröffentlichungen nicht geändert werden.

    immediate_sync

    true

    Die Synchronisierungsdateien für die Veröffentlichung werden bei jeder Ausführung des Momentaufnahme-Agents erstellt oder neu erstellt. Abonnenten können die Synchronisierungsdateien unmittelbar nach der Abonnierung erhalten, wenn der Momentaufnahme-Agent vor der Abonnierung abgeschlossen wurde. Neue Abonnements rufen die neuesten Synchronisierungsdateien ab, die von der letzten Ausführung des Momentaufnahmeagents generiert wurden. independent_agent muss außerdem den Wert true haben. Zusätzliche Informationen zu immediate_sync finden Sie in den Hinweisen unten.

     

    false

    Synchronisierungsdateien werden nur erstellt, wenn neue Abonnements vorhanden sind. Abonnenten können die Synchronisierungsdateien nach dem Einrichten des Abonnements erst empfangen, wenn die Momentaufnahme-Agents gestartet und abgeschlossen wurden.

    independent_agent

    true

    Die Veröffentlichung verfügt über ihren eigenen dedizierten Verteilungs-Agent.

     

    false

    Die Veröffentlichung verwendet einen freigegebenen Verteilungs-Agent, und jedes Paar aus Veröffentlichungsdatenbank und Abonnementdatenbank verfügt über einen freigegebenen Agent.

    p2p_continue_onconflict

    true

    Der Verteilungs-Agent setzt bei Erkennung eines Konflikts die Verarbeitung von Änderungen fort.

    VorsichtshinweisVorsicht

    Es wird empfohlen, den Standardwert FALSE zu verwenden. Wenn diese Option auf TRUE festgelegt wird, versucht der Verteilungs-Agent, die Datenkonvergenz in der Topologie herbeizuführen, indem die konfliktverursachende Zeile von dem Knoten mit der höchsten Absender-ID angewendet wird. Bei dieser Methode ist keine Konvergenz garantiert. Sie sollten sicherstellen, dass die Topologie nach der Erkennung eines Konflikts konsistent ist. Weitere Informationen finden Sie im Abschnitt "Konfliktbehandlung" unter Konflikterkennung bei der Peer-zu-Peer-Replikation.

    false

    Der Verteilungs-Agent beendet bei Erkennung eines Konflikts die Verarbeitung von Änderungen.

    post_snapshot_script

     

    Gibt den Speicherort einer Skriptdatei von Transact-SQL an, die der Verteilungs-Agent ausführt, nachdem alle anderen Skripts für replizierte Objekte und Daten während der Anfangssynchronisierung angewendet wurden.

    pre_snapshot_script

     

    Gibt den Speicherort einer Skriptdatei von Transact-SQL an, die der Verteilungs-Agent ausführt, bevor alle anderen Skripts für replizierte Objekte und Daten während der Anfangssynchronisierung angewendet wurden.

    publish_to_ActiveDirectory

    true

    Dieser Parameter wurde als veraltet markiert und wird nur aus Gründen der Abwärtskompatibilität von Skripts unterstützt. Sie können Microsoft Active Directory nicht länger Veröffentlichungsinformationen hinzufügen.

     

    false

    Entfernt die Veröffentlichungsinformationen aus Active Directory.

    queue_type

    sql

    Zum Speichern von Transaktionen wird SQL Server verwendet. Diese Eigenschaft kann nur geändert werden, wenn keine aktiven Abonnements vorhanden sind.

    HinweisHinweis

    Die Unterstützung für das Verwenden von Microsoft Message Queuing wurde eingestellt. Das Angeben des Werts msmq für value führt zu einem Fehler.

    repl_freq

    continuous

    Veröffentlicht die Ausgabe aller protokollbasierten Transaktionen.

     

    snapshot

    Veröffentlicht nur geplante Synchronisierungsereignisse.

    replicate_ddl

    1

    Auf dem Verleger ausgeführte Anweisungen der Datendefinitionssprache (DDL, Data Definition Language) werden repliziert. Diese Eigenschaft kann für Nicht-SQL Server-Veröffentlichungen nicht geändert werden.

     

    0

    DDL-Anweisungen werden nicht repliziert. Diese Eigenschaft kann für Nicht-SQL Server-Veröffentlichungen nicht geändert werden. Die Replikation von Schemaänderungen kann nicht deaktiviert werden, wenn Peer-zu-Peer-Replikation verwendet wird.

    replicate_partition_switch

    true

    ALTER TABLE…SWITCH-Anweisungen, die für die veröffentlichte Datenbank ausgeführt werden, sollten auf Abonnenten repliziert werden. Diese Option ist nur gültig, wenn allow_partition_switch auf TRUE festgelegt wurde. Weitere Informationen finden Sie unter Replizieren partitionierter Tabellen und Indizes.

    false

    ALTER TABLE…SWITCH-Anweisungen sollten nicht auf Abonnenten repliziert werden.

    retention

     

    Ein Wert vom Datentyp int, der die Aufbewahrungsdauer für Abonnementaktivitäten in Stunden darstellt. Wenn ein Abonnement innerhalb der Beibehaltungsdauer nicht aktiv ist, wird es entfernt.

    snapshot_in_defaultfolder

    true

    Momentaufnahmedateien werden im Standardmomentaufnahmeordner gespeichert. Ist alt_snapshot_folderebenfalls angegeben, werden Momentaufnahmedateien sowohl am Standardspeicherort als auch am alternativen Speicherort gespeichert.

     

    false

    Momentaufnahmedateien werden am alternativen Speicherort gespeichert, der durch alt_snapshot_folder angegeben wird.

    status

    active

    Veröffentlichungsdaten sind für Abonnenten sofort beim Erstellen der Veröffentlichung verfügbar. Wird für Oracle-Verleger nicht unterstützt.

     

    inactive

    Veröffentlichungsdaten sind für Abonnenten nicht beim Erstellen der Veröffentlichung verfügbar. Wird für Oracle-Verleger nicht unterstützt.

    sync_method

    native

    Verwendet beim Synchronisieren von Abonnements eine Massenkopierausgabe aller Tabellen im einheitlichen Modus.

     

    character

    Verwendet beim Synchronisieren von Abonnements eine Massenkopierausgabe aller Tabellen im Zeichenmodus.

     

    concurrent

    Verwendet eine Massenkopierprogramm-Ausgabe aller Tabellen im einheitlichen Modus, sperrt jedoch die Tabellen beim Generieren der Momentaufnahme nicht. Nicht für die Momentaufnahmereplikation gültig.

     

    concurrent_c

    Verwendet eine Massenkopierprogramm-Ausgabe aller Tabellen im Zeichenmodus, sperrt jedoch die Tabellen beim Generieren der Momentaufnahme nicht. Nicht für die Momentaufnahmereplikation gültig.

    taskid

     

    Diese Eigenschaft wurde als veraltet markiert und wird nicht mehr unterstützt.

    NULL (Standard)

     

    Gibt die Liste unterstützter Werte für property zurück.

  • [ @force_invalidate_snapshot = ] force_invalidate_snapshot
    Bestätigt, dass durch die von dieser gespeicherten Prozedur ausgeführte Aktion möglicherweise eine vorhandene Momentaufnahme ungültig wird. force_invalidate_snapshot ist vom Datentyp bit. Der Standardwert ist 0.

    Durch 0 wird angegeben, dass die Momentaufnahme nicht durch Änderungen am Artikel ungültig werden kann. Wenn die gespeicherte Prozedur erkennt, dass die Änderungen eine neue Momentaufnahme erfordern, tritt ein Fehler auf und es werden keine Änderungen vorgenommen.

    Durch 1 wird angegeben, dass die Momentaufnahme durch Änderungen am Artikel ungültig werden kann. Wenn Abonnements vorhanden sind, die eine neue Momentaufnahme erfordern würden, wird mit diesem Wert die Berechtigung erteilt, die vorhandene Momentaufnahme als veraltet zu markieren und eine neue Momentaufnahme zu generieren.

    Weitere Informationen zu den Eigenschaften, bei deren Änderung die Generierung einer neuen Momentaufnahme erforderlich ist, finden Sie im Abschnitt "Hinweise".

  • [@force_reinit_subscription = ] force_reinit_subscription
    Bestätigt, dass die von dieser gespeicherten Prozedur ausgeführte Aktion möglicherweise das erneute Initialisieren von vorhandenen Abonnements erfordert. force_reinit_subscription ist vom Datentyp bit. Der Standardwert ist 0.

    Durch 0 wird angegeben, dass das Abonnement nicht durch Änderungen am Artikel erneut initialisiert werden kann. Wenn die gespeicherte Prozedur erkennt, dass die Änderung die erneute Initialisierung von vorhandenen Abonnements erfordert, tritt ein Fehler auf und es werden keine Änderungen durchgeführt.

    Der Wert 1 gibt an, dass Änderungen am Artikel die erneute Initialisierung vorhandener Abonnements bewirken. Außerdem wird mit diesem Wert die Berechtigung zur erneuten Initialisierung des Abonnements erteilt.

  • [ @publisher = ] 'publisher'
    Gibt einen Nicht-SQL Server-Verleger an. publisher ist vom Datentyp sysname und hat den Standardwert NULL.

    HinweisHinweis

    publisher sollte nicht beim Ändern von Artikeleigenschaften für einen SQL Server-Verleger verwendet werden.

Rückgabecodewerte

0 (Erfolg) oder 1 (Fehler)

Hinweise

sp_changepublication wird bei der Momentaufnahme- und Transaktionsreplikation verwendet.

Das Ändern der folgenden Eigenschaften erfordert die Generierung einer neuen Momentaufnahme, und Sie müssen einen Wert von 1 für den force_invalidate_snapshot-Parameter angeben.

  • alt_snapshot_folder

  • compress_snapshot

  • enabled_for_het_sub

  • ftp_address

  • ftp_login

  • ftp_password

  • ftp_port

  • ftp_subdirectory

  • post_snapshot_script

  • pre_snapshot_script

  • snapshot_in_defaultfolder

  • sync_mode

Das SQL Server-Objekt muss bereits in Active Directory erstellt sein, um Veröffentlichungsobjekte mithilfe des publish_to_active_directory-Parameters aufzulisten.

Auswirkungen von "immediate_sync"

Wenn immediate_sync aktiviert ist, werden alle Änderungen im Protokoll unmittelbar im Anschluss an die erste Momentaufnahme nachverfolgt, auch wenn keine Abonnements vorhanden sind. Protokollierte Änderungen werden verwendet, wenn ein Kunde einen neuen Peerknoten mithilfe einer Sicherung hinzufügt. Nachdem die Sicherung wiederhergestellt wurde, wird der Peer anhand weiterer Änderungen synchronisiert, die nach der Sicherung vorgenommen wurden. Da die Befehle in der Verteilungsdatenbank nachverfolgt werden, kann die Synchronisierungslogik die letzte gesicherte LSN ermitteln und diese als Ausgangspunkt verwenden. Wenn die Sicherung innerhalb der maximalen Beibehaltungsdauer ausgeführt wurde, kann davon ausgegangen werden, dass der Befehl verfügbar ist. (Der Standardwert für die minimale Beibehaltungsdauer beträgt 0 Std. und der für die maximale Beibehaltungsdauer 24 Std.)

Wenn immediate_sync deaktiviert ist, werden die Änderungen mindestens über die minimale Beibehaltungsdauer vorgehalten und sofort für alle bereits replizierten Transaktionen bereinigt. Wenn immediate_sync deaktiviert und mit der Standardbeibehaltungsdauer konfiguriert ist, ist es wahrscheinlich, dass die erforderlichen Änderungen nach der Sicherung bereinigt wurden und dass der neue Peerknoten nicht ordnungsgemäß initialisiert wird. Die einzige Option besteht darin, die Topologie in einen inaktiven Zustand zu versetzen. Wenn Sie immediate_synch aktivieren, erhöht sich die Flexibilität. Darüber hinaus ist dies die empfohlene Einstellung für P2P-Replikationen.

Beispiel

DECLARE @publication AS sysname
SET @publication = N'AdvWorksProductTran' 

-- Turn off DDL replication for the transactional publication.
USE [AdventureWorks2012]
EXEC sp_changepublication 
  @publication = @publication, 
  @property = N'replicate_ddl', 
  @value = 0
GO

Berechtigungen

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

Siehe auch

Verweis

sp_addpublication (Transact-SQL)

sp_droppublication (Transact-SQL)

sp_helppublication (Transact-SQL)

Gespeicherte Replikationsprozeduren (Transact-SQL)

Konzepte

Anzeigen und Ändern von Veröffentlichungseigenschaften

Ändern von Veröffentlichungs- und Artikeleigenschaften