sp_changemergepublication (Transact-SQL)

Ändert die Eigenschaften einer Mergeveröffentlichung. Diese gespeicherte Prozedur wird beim Verleger mit der Veröffentlichungsdatenbank ausgeführt.

Themenlink (Symbol)Transact-SQL-Syntaxkonventionen

Syntax

sp_changemergepublication [ @publication= ] 'publication'
    [ , [ @property= ] 'property' ]
    [ , [ @value= ] 'value' ]
    [ , [ @force_invalidate_snapshot = ] force_invalidate_snapshot ]
    [ , [ @force_reinit_subscription = ] force_reinit_subscription ]

Argumente

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

  • [ @property=\] 'property'
    Die Eigenschaft, die für die angegebene Veröffentlichung geändert werden soll. property ist ein Wert vom Datentyp sysname. Die in der Tabelle aufgeführten Werte sind möglich.

  • [ @value=\] 'value'
    Der neue Wert für die angegebene Eigenschaft. value ist ein Wert vom Datentyp nvarchar(255). Die in der folgenden Tabelle aufgeführten Werte sind möglich.

    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

    Anonyme Abonnements sind zulässig.

     

    false

    Anonyme Abonnements sind nicht zulässig.

    allow_partition_realignment

    true

    Löschvorgänge werden an den Abonnenten gesendet, um die Ergebnisse einer Partitionsänderung widerzuspiegeln, indem Daten entfernt werden, die nicht mehr Bestandteil der Partition des Abonnenten sind. Dies ist das Standardverhalten.

     

    false

    Daten einer alten Partition verbleiben auf dem Abonnenten. Änderungen an diesen Daten auf dem Verleger werden nicht an diesen Abonnenten repliziert. Stattdessen werden auf dem Abonnenten vorgenommene Änderungen an den Verleger repliziert. Auf diese Weise werden Daten in einem Abonnement aus einer alten Partition beibehalten, wenn die Daten noch benötigt werden.

    allow_pull

    true

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

     

    false

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

    allow_push

    true

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

     

    false

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

    allow_subscriber_initiated_snapshot

    true

    Der Abonnent kann den Snapshotprozess initiieren.

     

    false

    Der Abonnent kann den Snapshotprozess nicht initiieren.

    allow_subscription_copy

    true

    Sie können die Abonnementdatenbanken kopieren, die diese Veröffentlichung abonniert haben.

     

    false

    Sie können die Abonnementdatenbanken, die diese Veröffentlichung abonniert haben, nicht kopieren.

    allow_synctoalternate

    true

    Lässt einen alternativen Synchronisierungspartner für die Synchronisierung mit diesem Verleger zu.

     

    false

    Lässt keinen alternativen Synchronisierungspartner für die Synchronisierung mit diesem Verleger zu.

    allow_web_synchronization

    true

    Abonnements können über HTTPS synchronisiert werden.

     

    false

    Abonnements können nicht über HTTPS synchronisiert werden.

    alt_snapshot_folder

     

    Gibt den Speicherort des alternativen Ordners für den Snapshot an.

    automatic_reinitialization_policy

    1

    Änderungen werden vor der Neuinitialisierung vom Abonnenten hochgeladen.

     

    0

    Das Abonnement wird erneut initialisiert, ohne die Änderungen vorher hochzuladen.

    centralized_conflicts

    true

    Alle Konfliktdatensätze werden auf dem Verleger gespeichert. Wenn Sie diese Eigenschaft ändern, müssen vorhandene Abonnenten erneut initialisiert werden.

     

    false

    Konfliktdatensätze werden auf dem Server gespeichert, der bei der Konfliktauflösung verloren hat. Wenn Sie diese Eigenschaft ändern, müssen vorhandene Abonnenten erneut initialisiert werden.

    compress_snapshot

    true

    Der Snapshot in einem alternativen Snapshotordner wird in das CAB-Format komprimiert. Der Snapshot im Standardsnapshotordner kann nicht komprimiert werden. Für das Ändern dieser Eigenschaft ist ein neuer Snapshot erforderlich.

     

    false

    Standardmäßig wird der Snapshot nicht komprimiert. Für das Ändern dieser Eigenschaft ist ein neuer Snapshot erforderlich.

    conflict_logging

    publisher

    Die Konfliktdatensätze werden auf dem Verleger gespeichert.

     

    subscriber

    Die Konfliktdatensätze werden auf dem Abonnenten gespeichert, der den Konflikt verursacht hat. Dies wird für SQL Server Compact 3.5 SP2-Abonnenten nicht unterstützt.

     

    both

    Die Konfliktdatensätze werden auf dem Verleger und auf dem Abonnenten gespeichert.

    conflict_retention

     

    int gibt die Beibehaltungsdauer in Tagen an, für die Konflikte beibehalten werden. Die Festlegung von conflict_retention auf 0 bedeutet, dass kein Konfliktcleanup erforderlich ist.

    description

     

    Die Beschreibung der Veröffentlichung.

    dynamic_filters

    true

    Die Veröffentlichung wird anhand einer dynamischen Klausel gefiltert.

     

    false

    Die Veröffentlichung wird nicht dynamisch gefiltert.

    enabled_for_internet

    true

    Die Veröffentlichung ist für das Internet aktiviert. File Transfer Protocol (FTP) kann verwendet werden, um die Snapshotdateien an einen Abonnenten zu übertragen. Die Synchronisierungsdateien für die Veröffentlichung werden im Verzeichnis C:\Programme\Microsoft SQL Server\MSSQL\Repldata\ftp gespeichert.

     

    false

    Die Veröffentlichung ist nicht für das Internet aktiviert.

    ftp_address

     

    Die Netzwerkadresse des FTP-Diensts für den Verteiler. Gibt an, wo die Snapshotdateien für die Veröffentlichung gespeichert werden.

    ftp_login

     

    Der Benutzername, mit dem eine Verbindung mit dem FTP-Dienst hergestellt wird.

    ftp_password

     

    Das Benutzerkennwort, mit dem eine Verbindung zum FTP-Dienst hergestellt wird.

    ftp_port

     

    Die Nummer des Anschlusses für den FTP-Dienst des Verteilers. Gibt die TCP-Anschlussnummer der FTP-Site an, in der die Snapshotdateien für die Veröffentlichung gespeichert werden.

    ftp_subdirectory

     

    Gibt an, wo die Snapshotdateien erstellt werden, wenn die Veröffentlichung das Verteilen von Snapshots mithilfe von FTP unterstützt.

    generation_leveling_threshold

    int

    Gibt die Anzahl der Änderungen an, die in einer Generierung enthalten sind. Eine Generierung ist eine Auflistung von Änderungen, die an einen Verleger oder Abonnenten übermittelt werden. Weitere Informationen finden Sie unter Funktionsweise der Nachverfolgung und der Enumeration bei der Mergereplikation.

    keep_partition_changes

    true

    Die Synchronisierung wird optimiert, und es sind nur Abonnenten betroffen, die über Zeilen in den geänderten Partitionen verfügen. Für das Ändern dieser Eigenschaft ist ein neuer Snapshot erforderlich.

     

    false

    Die Synchronisierung wird nicht optimiert, und die an Abonnenten gesendeten Partitionen werden überprüft, wenn sich Daten in einer Partition ändern. Für das Ändern dieser Eigenschaft ist ein neuer Snapshot erforderlich.

    max_concurrent_merge

     

    Ist vom Datentyp int und stellt die maximale Anzahl gleichzeitiger Mergeprozesse dar, die für eine Mergeveröffentlichung ausgeführt werden können. Bei 0 gibt es keine Beschränkung. Wenn die gleichzeitige Ausführung von mehr Mergeprozessen geplant ist, werden die überschüssigen Aufträge in eine Warteschlange eingereiht, in der diese darauf warten, dass ein aktuell ausgeführter Mergeprozess beendet wird.

    max_concurrent_dynamic_snapshots

     

    Ist vom Datentyp int und stellt die maximale Anzahl gleichzeitiger Snapshotsitzungen zum Generieren eines Snapshots mit gefilterten Daten dar, die gleichzeitig für eine Mergeveröffentlichung ausgeführt werden können, die parametrisierte Zeilenfilter verwendet. Im Fall von 0 liegt keine Beschränkung vor. Wenn die gleichzeitige Ausführung von mehr Snapshotprozessen geplant ist, werden die überschüssigen Aufträge in eine Warteschlange eingereiht, bis ein aktueller Mergeprozess beendet wird.

    post_snapshot_script

     

    Gibt einen Zeiger auf einen Speicherort für .sql-Dateien an. Der Verteilungs-Agent oder der Merge-Agent führt post_snapshot_script aus, nachdem alle andere Skripts für replizierte Objekte und Daten während der Erstsynchronisierung angewendet wurden. Für das Ändern dieser Eigenschaft ist ein neuer Snapshot erforderlich.

    pre_snapshot_script

     

    Gibt einen Zeiger auf einen Speicherort für .sql-Dateien an. Der Merge-Agent führt pre_snapshot_script vor allen Skripts für replizierte Objekte aus, wenn der Snapshot auf einem Abonnenten angewendet wird. Für das Ändern dieser Eigenschaft ist ein neuer Snapshot erforderlich.

    publication_compatibility_level

    100RTM

    SQL Server 2008

    90RTM

    SQL Server 2005

     

    80SP3

    SQL Server 2000 SP3

    80SP2

    SQL Server 2000 SP2

     

    80SP1

    SQL Server 2000 SP2

     

    80RTM

    SQL Server 2000

     

    70 SP4

    SQL Server 7.0 SP4

     

    70SP3

    SQL Server 7.0 SP3

     

    70SP2

    SQL Server 7.0 SP2

     

    70SP1

    SQL Server 7.0 SP1

     

    70RTM

    SQL Server 7.0

    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 Active Directory nicht länger Veröffentlichungsinformationen hinzufügen.

     

    false

    Entfernt die Veröffentlichungsinformationen aus Active Directory.

    replicate_ddl

    1

    Auf dem Verleger ausgeführte Anweisungen der Datendefinitionssprache (DDL, Data Definition Language) werden repliziert.

     

    0

    DDL-Anweisungen werden nicht repliziert.

    retention

     

    Ist vom Datentyp int und stellt die Anzahl von retention_period_unit-Einheiten dar, für die Änderungen für die angegebene Veröffentlichung gespeichert werden sollen. Wenn das Abonnement nicht innerhalb der Beibehaltungsdauer synchronisiert wird und die ausstehenden Änderungen von einem Cleanupvorgang auf dem Verteiler entfernt wurden, läuft das Abonnement ab und muss erneut initialisiert werden. Die maximal zulässige Beibehaltungsdauer entspricht der Anzahl von Tagen zwischen dem 31. Dezember 9999 und dem aktuellen Datum.

    HinweisHinweis
    Für die Beibehaltungsdauer von Mergeveröffentlichungen gilt eine Kulanzfrist von 24 Stunden, um Abonnenten in verschiedenen Zeitzonen zu unterstützen.

    retention_period_unit

    day

    Die Beibehaltungsdauer wird in Tagen angegeben.

     

    week

    Die Beibehaltungsdauer wird in Wochen angegeben.

     

    month

    Die Beibehaltungsdauer wird in Monaten angegeben.

     

    year

    Die Beibehaltungsdauer wird in Jahren angegeben.

    snapshot_in_defaultfolder

    true

    Snapshotdateien werden im Standardsnapshotordner gespeichert.

     

    false

    Snapshotdateien werden am alternativen Speicherort gespeichert, der durch alt_snapshot_folder angegeben wird. Diese Kombination gibt an, dass die Snapshotdateien sowohl im Standardspeicherort als auch in alternativen Speicherorten gespeichert werden.

    snapshot_ready

    true

    Der Snapshot für die Veröffentlichung ist verfügbar.

     

    false

    Der Snapshot für die Veröffentlichung ist nicht verfügbar.

    status

    active

    Die Veröffentlichung weist einen aktiven Status auf.

     

    inactive

    Die Veröffentlichung weist einen inaktiven Status auf.

    sync_mode

    native oder

    bcp native

    Massenkopierprogramm-Ausgabe aller Tabellen im systemeigenen Modus wird für Anfangssnapshot verwendet.

     

    character

    oder bcp character

    Massenkopierprogramm-Ausgabe aller Tabellen im Zeichenmodus wird für Anfangssnapshot verwendet. Dies ist für alle Nicht-SQL Server-Abonnenten erforderlich.

    use_partition_groups

    HinweisHinweis
    Wenn Sie nach der Verwendung von partition_groups erneut setupbelongs verwenden und use_partition_groups=false in changemergearticle festlegen, wird dies nach Aufnahme eines Snapshots unter Umständen nicht korrekt dargestellt. Die Trigger, die vom Snapshot generiert werden, sind mit Partitionsgruppen kompatibel. Sie können dieses Problem umgehen, indem Sie den Status auf Inaktiv festlegen, use_partition_groups ändern und den Status dann auf Aktiv festlegen.

    true

    Die Veröffentlichung verwendet vorausberechnete Partitionen.

     

    false

    Die Veröffentlichung verwendet keine vorausberechneten Partitionen.

    validate_subscriber_info

     

    Listet die Funktionen auf, die zum Abrufen von Abonnenteninformationen verwendet werden. Überprüft anschließend die dynamischen Filterkriterien, die für den Abonnenten verwendet werden, um zu überprüfen, dass die Informationen konsistent partitioniert werden.

    web_synchronization_url

     

    Der Standardwert für die Internet-URL, die für die Websynchronisierung verwendet wird.

    NULL (Standard)

     

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

  • [ @force_invalidate_snapshot = ] force_invalidate_snapshot
    Bestätigt, dass die von dieser gespeicherten Prozedur ausgeführte Aktion einen vorhandenen Snapshot für ungültig erklären kann. force_invalidate_snapshot ist ein Wert vom Datentyp bit. Der Standardwert ist 0.

    Mit dem Wert 0 wird angegeben, dass der Snapshot nicht durch Änderungen an der Veröffentlichung ungültig werden kann. Wenn die gespeicherte Prozedur erkennt, dass die Änderungen einen neuen Snapshot erfordern, tritt ein Fehler auf und es werden keine Änderungen vorgenommen.

    Mit dem Wert 1 wird angegeben, dass der Snapshot durch Änderungen an der Veröffentlichung ungültig werden kann. Wenn Abonnements vorhanden sind, die einen neuen Snapshot erfordern würden, wird mit diesem Wert die Berechtigung erteilt, den vorhandenen Snapshot als veraltet zu markieren und einen neuen Snapshot zu generieren.

    Weitere Informationen zu den Eigenschaften, bei deren Änderung die Generierung eines neuen Snapshots erforderlich ist, finden Sie im Abschnitt mit den Hinweisen.

  • [ @force_reinit_subscription = ] force_reinit_subscription
    Bestätigt, dass die von dieser gespeicherten Prozedur ausgeführte Aktion die erneute Initialisierung vorhandener Abonnements erfordern kann. force_reinit_subscription ist vom Datentyp bit. Der Standardwert ist 0.

    Mit dem Wert 0 wird angegeben, dass Abonnements nicht durch Änderungen an der Veröffentlichung erneut initialisiert werden müssen. Wenn die gespeicherte Prozedur erkennt, dass die Änderung die erneute Initialisierung von vorhandenen Abonnements erfordert, tritt ein Fehler auf und es werden keine Änderungen ausgeführt.

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

    Weitere Informationen zu den Eigenschaften, bei deren Änderung die erneute Initialisierung aller vorhandenen Abonnements erforderlich ist, finden Sie im Abschnitt "Hinweise".

Rückgabecodewerte

0 (Erfolg) oder 1 (Fehler)

Hinweise

sp_changemergepublication wird bei der Mergereplikation verwendet.

Das Ändern der folgenden Eigenschaften erfordert die Generierung eines neuen Snapshots. Sie müssen den Wert 1 für den force_invalidate_snapshot-Parameter angeben.

  • alt_snapshot_folder

  • compress_snapshot

  • dynamic_filters

  • ftp_address

  • ftp_login

  • ftp_password

  • ftp_port

  • ftp_subdirectory

  • post_snapshot_script

  • publication_compatibility_level (nur zu 80SP3)

  • pre_snapshot_script

  • snapshot_in_defaultfolder

  • sync_mode

  • use_partition_groups

Für das Ändern der folgenden Eigenschaften ist eine erneute Initialisierung von vorhandenen Abonnements erforderlich. Sie müssen den Wert 1 für den force_reinit_subscription-Parameter angeben.

  • dynamic_filters

  • validate_subscriber_info

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

Beispiel

DECLARE @publication AS sysname;
SET @publication = N'AdvWorksSalesOrdersMerge'; 

-- Disable DDL replication for the publication.
USE [AdventureWorks2008R2]
EXEC sp_changemergepublication 
  @publication = @publication, 
  @property = N'replicate_ddl', 
  @value = 0,
  @force_invalidate_snapshot = 0, 
  @force_reinit_subscription = 0;
GO

Berechtigungen

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