Freigeben über


sp_changemergepublication (Transact-SQL)

Gilt für: SQL Server

Ändert die Eigenschaften einer Mergeveröffentlichung. Diese gespeicherte Prozedur wird im Publisher in der Publikationsdatenbank ausgeführt.

Transact-SQL-Syntaxkonventionen

Syntax

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

Argumente

[ @publication = ] N'Publikation'

Der Name der Veröffentlichung. @publication ist "sysname" ohne Standard.

[ @property = ] N'property'

Die Eigenschaft, die für die angegebene Veröffentlichung geändert werden soll. @property ist "sysname" und kann einer der folgenden Werte in der folgenden Tabelle sein.

[ @value = ] N'value'

Der neue Wert für die angegebene Eigenschaft. @value ist nvarchar(255), mit einem Standardwert von NULL.

, und kann einer der folgenden Werte in der folgenden Tabelle aufgeführt sein.

Diese Tabelle beschreibt die Eigenschaften der Publikation, die geändert werden können, und beschreibt Einschränkungen für die Werte für diese 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 die Standardeinstellung.
false Daten aus einer alten Partition verbleiben im Abonnenten, bei denen Änderungen, die an diesen Daten in Publisher vorgenommen wurden, nicht in diesen Abonnenten repliziert werden. 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 Publikation nicht zulässig.
allow_push true Pushabonnements sind für die angegebene Veröffentlichung zulässig.
false Pushabonnements sind für die angegebene Publikation nicht zulässig.
allow_subscriber_initiated_snapshot true Der Abonnent kann den Momentaufnahmeprozess initiieren.
false Abonnent kann den Momentaufnahmevorgang 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 Publikation abonnieren, nicht kopieren.
allow_synctoalternate true Lässt einen alternativen Synchronisierungspartner für die Synchronisierung mit diesem Verleger zu.
false Es ist nicht zulässig, dass ein alternativer Synchronisierungspartner mit diesem Publisher synchronisiert wird.
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 die Momentaufnahme 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 Die Momentaufnahme in einem alternativen Momentaufnahmeordner wird in das CAB-Format komprimiert. Die Momentaufnahme im Standardmomentaufnahmeordner kann nicht komprimiert werden. Für das Ändern dieser Eigenschaft ist eine neue Momentaufnahme erforderlich.
false Standardmäßig wird die Momentaufnahme nicht komprimiert. Für das Ändern dieser Eigenschaft ist eine neue Momentaufnahme 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. Wird für SQL Server Compact-Abonnenten nicht unterstützt.
both Die Konfliktdatensätze werden auf dem Verleger und auf dem Abonnenten gespeichert.
conflict_retention Ein Int , das den Aufbewahrungszeitraum in Tagen angibt, für den Konflikte aufbewahrt werden. Die Einstellung conflict_retention bedeutet, 0 dass keine Konfliktbereinigung erforderlich ist.
description Beschreibung der Publikation.
dynamic_filters true Die Veröffentlichung wird anhand einer dynamischen Klausel gefiltert.
false Die Publikation 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 Momentaufnahmedateien an einen Abonnenten zu übertragen. Die Synchronisierungsdateien für die Publikation werden in das C:\Program Files\Microsoft SQL Server\MSSQL\Repldata\ftp Verzeichnis eingefügt.
false Die Publikation ist für das Internet nicht aktiviert.
ftp_address Die Netzwerkadresse des FTP-Diensts für den Distributor. Gibt an, wo die Momentaufnahmedateien für die Veröffentlichung gespeichert werden.
ftp_login Der Benutzername, der zum Herstellen einer Verbindung mit dem FTP-Dienst verwendet wird.
ftp_password Das Benutzerkennwort, das zum Herstellen einer Verbindung mit dem FTP-Dienst verwendet wird.
ftp_port Die Portnummer des FTP-Diensts für den Distributor. Gibt die TCP-Anschlussnummer der FTP-Site an, in der die Momentaufnahmedateien für die Veröffentlichung gespeichert werden.
ftp_subdirectory Gibt an, wo die Momentaufnahmedateien erstellt werden, wenn die Veröffentlichung das Verteilen von Momentaufnahmen mithilfe von FTP unterstützt.
generation_leveling_threshold int Gibt die Anzahl der Änderungen an, die in einer Generation enthalten sind. Eine Generierung ist eine Auflistung von Änderungen, die an einen Verleger oder Abonnenten übermittelt werden.
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 eine neue Momentaufnahme erforderlich.
false Die Synchronisierung ist nicht optimiert, und die Partitionen, die an Abonnenten gesendet werden, werden überprüft, wenn Daten in einer Partition geändert werden. Für das Ändern dieser Eigenschaft ist eine neue Momentaufnahme erforderlich.
max_concurrent_merge Ein Int , das die maximale Anzahl gleichzeitiger Zusammenführungsprozesse darstellt, die für eine Publikation ausgeführt werden können. Wenn 0, gibt es kein Limit. Wenn mehr als diese Anzahl von Zusammenführungsprozessen gleichzeitig ausgeführt werden soll, werden die überzähligen Aufträge in eine Warteschlange gesetzt, bis ein aktueller Prozess abgeschlossen ist.
max_concurrent_dynamic_snapshots Ein Int , das die maximale Anzahl von Momentaufnahmesitzungen darstellt, um eine gefilterte Datenmomentaufnahme zu generieren, die gleichzeitig für eine Zusammenführungsveröffentlichung ausgeführt werden kann, die parametrisierte Zeilenfilter verwendet. Wenn 0, gibt es keine Beschränkung. Wenn die gleichzeitige Ausführung von mehr Momentaufnahmeprozessen 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 .sql Dateispeicherort 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 eine neue Momentaufnahme erforderlich.
pre_snapshot_script Gibt einen Zeiger auf einen .sql Dateispeicherort an. Der Merge-Agent führt das vor der Momentaufnahme ausgeführte Skript vor allen Skripts für replizierte Objekte aus, wenn die Momentaufnahme auf einem Abonnenten angewendet wird. Für das Ändern dieser Eigenschaft ist eine neue Momentaufnahme erforderlich.
publication_compatibility_level 100RTM SQL Server 2008 (10.0.x)
90RTM SQL Server 2005 (9.x)
publish_to_activedirectory true Dieser Parameter ist veraltet und wird für die Abwärtskompatibilität von Skripts beibehalten. Sie können Active Directory nicht länger Veröffentlichungsinformationen hinzufügen.
false Entfernt die Veröffentlichungsinformationen aus Active Directory.
replicate_ddl 1 DDL-Anweisungen (Data Definition Language), die in Publisher ausgeführt werden, werden repliziert.
0 DDL-Anweisungen werden nicht repliziert.
retention Ein Int , der die Anzahl der retention_period_unit Einheiten darstellt, für die Änderungen für die angegebene Publikation gespeichert werden sollen. Wenn das Abonnement nicht innerhalb des Aufbewahrungszeitraums synchronisiert wird und die ausstehenden Änderungen, die es erhalten hat, durch einen Bereinigungsvorgang beim Distributor 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.

Hinweis: Der Aufbewahrungszeitraum für Seriendruckpublikationen hat eine 24-Stunden-Nachfrist, um Abonnenten in verschiedenen Zeitzonen zu berücksichtigen.
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 Momentaufnahmedateien werden im Standardmomentaufnahmeordner gespeichert.
false Momentaufnahmendateien werden an dem alternativen Speicherort gespeichert, der von alt_snapshot_folder. Diese Kombination gibt an, dass die Momentaufnahmedateien sowohl im Standardspeicherort als auch in alternativen Speicherorten gespeichert werden.
snapshot_ready true Die Momentaufnahme für die Veröffentlichung ist verfügbar.
false Momentaufnahme für die Publikation 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 einheitlichen Modus wird für die Anfangsmomentaufnahme verwendet.
character

oder bcp character
Die Programmausgabe im Massenkopiemodus aller Tabellen wird für die anfängliche Momentaufnahme verwendet, die für alle Nicht-SQL Server-Abonnenten erforderlich ist.
use_partition_groups

Hinweis: Nach der Verwendung von Partitionsgruppen, wenn Sie auf die Verwendung setupbelongszurücksetzen und in changemergearticle festgelegt use_partition_groups=false sind, wird dies möglicherweise nach dem Erstellen einer Momentaufnahme nicht ordnungsgemäß wiedergegeben. Die von snapshot generierten Trigger sind mit Partitionsgruppen kompatibel.

Die Problemumgehung für dieses Szenario besteht darin, den Status auf "Inaktiv" festzulegen, den use_partition_groupsStatus zu ändern und dann den Status auf "Aktiv" festzulegen.
true Die Veröffentlichung verwendet vorausberechnete Partitionen.
false Die Publikation verwendet keine vorkompilierten Partitionen.
validate_subscriber_info Listet die Funktionen auf, die zum Abrufen von Abonnenteninformationen verwendet werden. Überprüft dann die dynamischen Filterkriterien, die für den Abonnenten verwendet werden, um sicherzustellen, 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 der unterstützten Werte für @property zurück.

[ @force_invalidate_snapshot = ] force_invalidate_snapshot

Bestätigt, dass die von dieser gespeicherten Prozedur ausgeführte Aktion möglicherweise eine vorhandene Momentaufnahme ungültig macht. @force_invalidate_snapshot ist bit, mit einem Standardwert von 0.

  • 0 Gibt an, dass das Ändern der Publikation die Momentaufnahme nicht ungültig macht. Wenn die gespeicherte Prozedur erkennt, dass die Änderungen eine neue Momentaufnahme erfordern, tritt ein Fehler auf und es werden keine Änderungen vorgenommen.

  • 1 Gibt an, dass das Ändern der Publikation die Momentaufnahme möglicherweise ungültig macht. Wenn vorhandene Abonnements vorhanden sind, für die eine neue Momentaufnahme erforderlich ist, erteilen Sie die Berechtigung, dass die vorhandene Momentaufnahme als veraltet gekennzeichnet wird und dass eine neue Momentaufnahme generiert werden soll.

Im Abschnitt "Hinweise" finden Sie die Eigenschaften, für die beim Ändern eine neue Momentaufnahme generiert werden muss.

[ @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 bit, mit einem Standardwert von 0.

  • 0 Gibt an, dass das Ändern der Publikation nicht erfordert, dass Abonnements erneut initialisiert werden. Wenn die gespeicherte Prozedur erkennt, dass die Änderung vorhandene Abonnements erneut initialisiert werden muss, tritt ein Fehler auf, und es werden keine Änderungen vorgenommen.

  • 1 bedeutet, dass Änderungen an der Publikation vorhandene Abonnements neu initialisieren und die Berechtigung zum Erneutitialisieren des Abonnements erteilen.

Im Abschnitt "Hinweise" finden Sie die Eigenschaften, die bei änderung erforderlich sind, dass alle vorhandenen Abonnements erneut initialisiert werden.

Rückgabecodewerte

0 (erfolgreich) oder 1 Fehler.

Hinweise

sp_changemergepublication wird in der Seriendruckreplikation verwendet.

Das Ändern der folgenden Eigenschaften erfordert, dass eine neue Momentaufnahme generiert wird. Sie müssen einen 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 einen Wert 1 für den parameter @force_reinit_subscription angeben.

  • dynamic_filters
  • validate_subscriber_info

Zum Auflisten von Publikationsobjekten in Active Directory mithilfe publish_to_active_directoryvon Active Directory muss das SQL Server-Objekt bereits in Active Directory erstellt werden.

Beispiele

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

-- Disable DDL replication for the publication.
USE [AdventureWorks2022]
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 db_owner feste Datenbankrolle können ausgeführt werden sp_changemergepublication.