sp_addmergepublication (Transact-SQL)

Erstellt eine neue Mergeveröffentlichung. Diese gespeicherte Prozedur wird auf dem Verleger für die Datenbank ausgeführt, die veröffentlicht wird.

Themenlink (Symbol)Transact-SQL-Syntaxkonventionen

Syntax

sp_addmergepublication [ @publication = ] 'publication' 
    [ , [ @description = ] 'description' 
    [ , [ @retention = ] retention ] 
    [ , [ @sync_mode = ] 'sync_mode' ] 
    [ , [ @allow_push = ] 'allow_push' ] 
    [ , [ @allow_pull = ] 'allow_pull' ] 
    [ , [ @allow_anonymous = ] 'allow_anonymous' ] 
    [ , [ @enabled_for_internet = ] 'enabled_for_internet' ] 
    [ , [ @centralized_conflicts = ] 'centralized_conflicts' ] 
    [ , [ @dynamic_filters = ] 'dynamic_filters' ] 
    [ , [ @snapshot_in_defaultfolder = ] 'snapshot_in_default_folder' ] 
    [ , [ @alt_snapshot_folder = ] 'alternate_snapshot_folder' ] 
    [ , [ @pre_snapshot_script = ] 'pre_snapshot_script' ] 
    [ , [ @post_snapshot_script = ] 'post_snapshot_script' ] 
    [ , [ @compress_snapshot = ] 'compress_snapshot' ] 
    [ , [ @ftp_address = ] 'ftp_address' ] 
    [ , [ @ftp_port = ] ftp_port ] 
    [ , [ @ftp_subdirectory = ] 'ftp_subdirectory' ] 
    [ , [ @ftp_login = ] 'ftp_login' ] 
    [ , [ @ftp_password = ] 'ftp_password' ] 
    [ , [ @conflict_retention = ] conflict_retention ] 
    [ , [ @keep_partition_changes = ] 'keep_partition_changes' ] 
    [ , [ @allow_subscription_copy = ] 'allow_subscription_copy' ] 
    [ , [ @allow_synctoalternate = ] 'allow_synctoalternate' ] 
    [ , [ @validate_subscriber_info = ] 'validate_subscriber_info' ] 
    [ , [ @add_to_active_directory = ] 'add_to_active_directory' ] 
    [ , [ @max_concurrent_merge = ] maximum_concurrent_merge ] 
    [ , [ @max_concurrent_dynamic_snapshots = ] max_concurrent_dynamic_snapshots ]
    [ , [ @use_partition_groups = ] 'use_partition_groups' ]
    [ , [ @publication_compatibility_level = ] 'backward_comp_level' ]
    [ , [ @replicate_ddl = ] replicate_ddl ]
    [ , [ @allow_subscriber_initiated_snapshot = ] 'allow_subscriber_initiated_snapshot' ] 
    [ , [ @allow_web_synchronization = ] 'allow_web_synchronization' ] 
    [ , [ @web_synchronization_url = ] 'web_synchronization_url' ]
    [ , [ @allow_partition_realignment = ] 'allow_partition_realignment' ]
    [ , [ @retention_period_unit = ] 'retention_period_unit' ]
    [ , [ @generation_leveling_threshold = ] generation_leveling_threshold ]
    [ , [ @automatic_reinitialization_policy = ] automatic_reinitialization_policy ]
    [ , [ @conflict_logging = ] 'conflict_logging' ]

Argumente

  • [ @publication = ] 'publication'
    Der Name der Mergeveröffentlichung, die erstellt werden soll. publication hat den Datentyp sysname und keinen Standardwert. Das ALL-Schlüsselwort ist nicht zulässig. Der Name der Veröffentlichung muss innerhalb der Datenbank eindeutig sein.

  • [ @description = ] 'description'
    Die Beschreibung der Veröffentlichung. description hat den Datentyp nvarchar(255) und den Standardwert NULL.

  • [ @retention = ] retention
    Die Beibehaltungsdauer, die in den entsprechenden Einheiten angegeben wird. Während dieser Beibehaltungsdauer werden Änderungen für publication gespeichert. retention hat den Datentyp int mit dem Standardwert 14 Einheiten. Die Einheiten für die Beibehaltungsdauer werden mit retention_period_unit definiert. Wird das Abonnement nicht innerhalb der Beibehaltungsdauer synchronisiert und wurden die ausstehenden Änderungen, die vorgenommen werden sollten, durch ein Cleanup am Verteiler entfernt, dann läuft das Abonnement aus und muss neu initialisiert werden. Die maximal zulässige Beibehaltungsdauer ist die Anzahl von Tagen zwischen dem 31. Dezember 9999 und dem aktuellen Datum.

    HinweisHinweis

    Für die Beibehaltungsdauer für eine Mergeveröffentlichung gilt eine Verlängerungsfrist von 24 Stunden, damit die verschiedenen Zeitzonen der Abonnenten berücksichtigt werden. Wenn Sie beispielsweise eine Beibehaltungsdauer von einem Tag festgelegt haben, beträgt die tatsächliche Beibehaltungsdauer 48 Stunden.

  • [ @sync_mode = ] 'sync_mode'
    Der Modus der ersten Synchronisierung von Abonnenten der Veröffentlichung. sync_mode hat den Datentyp nvarchar(10) und kann einen der folgenden Werte annehmen.

    Wert

    Beschreibung

    native (Standard)

    Erstellt eine Massenkopierprogramm-Ausgabe aller Tabellen im systemeigenen Modus.

    character

    Erstellt eine Massenkopierprogramm-Ausgabe aller Tabellen im Zeichenmodus. Ist erforderlich, um Microsoft SQL Server Compact 3.5 SP2 sowie Nicht-SQL Server-Abonnenten zu unterstützen.

  • [ @allow_push = ] 'allow_push'
    Gibt an, ob Pushabonnements für die angegebene Veröffentlichung erstellt werden können. allow_push ist vom Datentyp nvarchar(5), der Standardwert ist TRUE, womit Pushabonnements für die Veröffentlichung zulässig sind.

  • [ @allow_pull = ] 'allow_pull'
    Gibt an, ob Pullabonnements für die angegebene Veröffentlichung erstellt werden können. allow_pull ist vom Datentyp nvarchar(5), der Standardwert ist TRUE, womit Pullabonnements für die Veröffentlichung zulässig sind. Sie müssen TRUE angeben, damit SQL Server Compact 3.5 SP2-Abonnenten unterstützt werden.

  • [ @allow_anonymous = ] 'allow_anonymous'
    Gibt an, ob anonyme Abonnements für die angegebene Veröffentlichung erstellt werden können. allow_anonymous ist vom Datentyp nvarchar(5), der Standardwert ist TRUE, womit anonyme Abonnements für die Veröffentlichung zulässig sind. Damit SQL Server Compact 3.5 SP2-Abonnenten unterstützt werden, müssen Sie true angeben.

  • [ @enabled_for_internet = ] 'enabled_for_internet'
    Gibt an, ob die Veröffentlichung für das Internet aktiviert ist, und bestimmt, ob für die Übermittlung der Momentaufnahmedateien an einen Abonnenten FTP (File Transfer Protocol) verwendet werden kann. enabled_for_internet ist vom Datentyp nvarchar(5), der Standardwert ist FALSE. Bei einem Wert von true werden die Synchronisierungsdateien für die Veröffentlichung im Verzeichnis C:\Programme\Microsoft SQL Server\MSSQL\MSSQL.x\Repldata\Ftp gespeichert. Der Benutzer muss das FTP-Verzeichnis erstellen. Bei falseist die Veröffentlichung nicht für den Internetzugriff aktiviert.

  • [ @centralized_conflicts =] 'centralized_conflicts'
    Dieser Parameter wurde als veraltet markiert und wird nur aus Gründen der Abwärtskompatibilität für Skripts unterstützt. Verwenden Sie conflict_logging, um anzugeben, wo Konfliktdatensätze gespeichert werden sollen.

  • [ @dynamic_filters =] 'dynamic_filters'
    Aktiviert die Verwendung parametrisierter Zeilenfilter für die Mergeveröffentlichung. dynamic_filters ist vom Datentyp nvarchar(5) und hat den Standardwert FALSE.

    HinweisHinweis

    Sie sollten diesen Parameter nicht angeben, sondern stattdessen SQL Server zulassen, damit automatisch festgestellt wird, ob parametrisierte Zeilenfilter verwendet werden. Wenn Sie den Wert true für dynamic_filters angeben, müssen Sie für den Artikel einen parametrisierten Zeilenfilter definieren. Weitere Informationen finden Sie unter Vorgehensweise: Definieren und Ändern eines parametrisierten Zeilenfilters für einen Mergeartikel (Replikationsprogrammierung mit Transact-SQL).

  • [ @snapshot_in_defaultfolder = ] 'snapshot_in_default_folder'
    Gibt an, ob die Momentaufnahmedateien im Standardordner gespeichert werden. snapshot_in_default_folder ist vom Datentyp nvarchar(5), der Standardwert ist TRUE. Bei true befinden sich die Momentaufnahmedateien im Standardordner. Bei false werden die Momentaufnahmedateien am alternativen Speicherort gespeichert, der durch alternate_snapshot_folder angegeben wird. Alternative Speicherorte können sich auf einem anderen Server, auf einem Netzlaufwerk oder auf einem Wechselmedium (z. B. CD-ROM oder Wechseldatenträger) befinden. Momentaufnahmedateien lassen sich auch auf einer FTP-Site (File Transfer Protocol) speichern, um zu einem späteren Zeitpunkt vom Abonnenten abgerufen zu werden. Beachten Sie, dass dieser Parameter auf TRUE festgelegt sein kann und dennoch ein Speicherort mit alt_snapshot_folder angegeben sein kann. Diese Kombination gibt an, dass die Momentaufnahmedateien sowohl im Standardpfad als auch im alternativen Pfad gespeichert werden.

  • [ @alt_snapshot_folder = ] 'alternate_snapshot_folder'
    Gibt den Speicherort des alternativen Ordners für die Momentaufnahme an. alternate_snapshot_folder ist vom Datentyp nvarchar(255) und hat den Standardwert NULL.

  • [ @pre_snapshot_script = ] 'pre_snapshot_script'
    Gibt einen Zeiger auf einen Speicherort für SQL-Dateien an. pre_snapshot_script ist vom Datentyp nvarchar(255), der Standardwert ist NULL. Der Merge-Agent führt pre_snapshot_script vor allen Skripts für replizierte Objekte aus, wenn die Momentaufnahme auf einem Abonnenten angewendet wird. Das Skript wird in dem Sicherheitskontext ausgeführt, der vom Merge-Agent beim Herstellen einer Verbindung mit der Abonnementdatenbank verwendet wird. Vor der Momentaufnahme ausgeführte Skripts werden nicht auf SQL Server Compact 3.5 SP2-Abonnenten ausgeführt.

  • [ @post_snapshot_script = ] 'post_snapshot_script'
    Gibt einen Zeiger auf einen Speicherort für SQL-Dateien an. post_snapshot_script ist vom Datentyp nvarchar(255), der Standardwert ist NULL. Der Merge-Agent führt das nach der Momentaufnahme ausgeführte Skript aus, nachdem alle anderen Skripts und Daten für replizierte Objekte während einer Erstsynchronisierung angewendet wurden. Das Skript wird in dem Sicherheitskontext ausgeführt, der vom Merge-Agent beim Herstellen einer Verbindung mit der Abonnementdatenbank verwendet wird. Nach der Momentaufnahme ausgeführte Skripts werden nicht auf SQL Server Compact 3.5 SP2-Abonnenten ausgeführt.

  • [ @compress_snapshot = ] 'compress_snapshot'
    Gibt an, dass die Momentaufnahme, die an den Speicherort @alt_snapshot_folder geschrieben wird, in das Microsoft CAB-Format komprimiert werden soll. compress_snapshot ist vom Datentyp nvarchar(5), der Standardwert ist FALSE. Durch false wird angegeben, dass die Momentaufnahme nicht komprimiert wird. Durch true wird angegeben, dass die Momentaufnahme komprimiert werden soll. Momentaufnahmedateien, die größer als 2 GB sind, können nicht komprimiert werden. Komprimierte Momentaufnahmedateien werden an der Stelle dekomprimiert, an der der Merge-Agent ausgeführt wird. Pullabonnements werden in der Regel mit komprimierten Momentaufnahmen verwendet, sodass die Dateien auf dem Abonnenten dekomprimiert werden. Die Momentaufnahme im Standardordner kann nicht komprimiert werden. Damit SQL Server Compact 3.5 SP2-Abonnenten unterstützt werden, müssen Sie false angeben.

  • [ @ftp_address = ] 'ftp_address'
    Die Netzwerkadresse des FTP-Diensts für den Verteiler. ftp_address ist vom Datentyp sysname, der Standardwert ist NULL. Gibt an, wo die Veröffentlichungsmomentaufnahmedateien zum Abholen durch den Merge-Agent eines Abonnenten abgelegt werden. Da diese Eigenschaft für jede Veröffentlichung gespeichert wird, kann jede Veröffentlichung einen unterschiedlichen Wert für ftp_address besitzen. Die Veröffentlichung muss die Weitergabe von Momentaufnahmen über FTP unterstützen.

  • [ @ftp_port= ] ftp_port
    Die Portnummer des FTP-Diensts für den Verteiler. ftp_port hat den Datentyp int und den Standardwert 21. Gibt an, wo die Veröffentlichungsmomentaufnahmedateien zum Abholen durch den Merge-Agent eines Abonnenten abgelegt werden. Da diese Eigenschaft für jede Veröffentlichung gespeichert wird, kann jede Veröffentlichung einen eigenen Wert für ftp_port besitzen.

  • [ @ftp_subdirectory = ] 'ftp_subdirectory'
    Gibt an, wo die Momentaufnahmedateien zum Abholen durch den Merge-Agent des Abonnenten bereitgestellt werden, wenn die Veröffentlichung die Weitergabe von Momentaufnahmen über FTP unterstützt. ftp_subdirectory hat den Datentyp nvarchar(255) und den Standardwert NULL. Da diese Eigenschaft für jede Veröffentlichung gespeichert wird, kann jede Veröffentlichung ihren eigenen Wert für ftp_subdirctory besitzen oder aber keine Unterverzeichnisse verwenden. Dies wird durch den Wert NULL angezeigt.

    Wenn Momentaufnahmen für Veröffentlichungen vorab mit parametrisierten Filtern erstellt werden, dann muss die Datenmomentaufnahme für jede Abonnentenpartition jeweils in einem eigenen Ordner abgelegt sein. Die Verzeichnisstruktur für vorab über FTP generierte Momentaufnahmen muss der folgenden Struktur entsprechen:

    alternate_snapshot_folder\ftp\publisher_publicationDB_publication\partitionID.

    HinweisHinweis

    Die oben kursiv dargestellten Werte sind von den Festlegungen für die Veröffentlichung und Abonnentenpartition abhängig.

  • [ @ftp_login = ] 'ftp_login'
    Der Benutzername, der für die Verbindung mit dem FTP-Dienst verwendet wird. ftp_login ist vom Datentyp sysname, der Standardwert ist anonymous.

  • [ @ftp_password = ] 'ftp_password'
    Das Benutzerkennwort, mit dem eine Verbindung mit dem FTP-Dienst hergestellt wird. ftp_password ist vom Datentyp sysname, der Standardwert ist NULL.

    SicherheitshinweisSicherheitshinweis

    Verwenden Sie kein leeres Kennwort. Verwenden Sie ein sicheres Kennwort.

  • [ @conflict_retention = ] conflict_retention
    Gibt die Beibehaltungsdauer für Konflikte in Tagen an. conflict_retention hat den Datentyp int und als Standardwert eine Beibehaltungsdauer von 14 Tagen, nach der die Konfliktzeile aus der Konflikttabelle gelöscht wird.

  • [ @keep_partition_changes = ] 'keep_partition_changes'
    Gibt an, ob die Optimierung von Partitionsänderungen aktiviert werden soll, wenn keine vorausberechneten Partitionen verwendet werden können. keep_partition_changes hat den Datentyp nvarchar(5) und den Standardwert TRUE. false gibt an, dass Partitionsänderungen nicht optimiert werden. Werden keine vorberechneten Partitionen verwendet, werden die an alle Abonnenten gesendeten Partitionen überprüft, wenn sich die Daten in einer Partition ändern. true bedeutet, dass die Partitionsänderungen optimiert werden, und dass nur Abonnenten mit Zeilen in den geänderten Partitionen betroffen sind. Legen Sie bei Verwendung vorausberechneter Partitionen use_partition_groups auf true und keep_partition_changes auf false fest. Weitere Informationen finden Sie unter Optimieren der Leistung parametrisierter Filter mithilfe vorausberechneter Partitionen.

    HinweisHinweis

    Wenn Sie den Wert truefür keep_partition_changes angeben, geben Sie den Wert 1 für den Momentaufnahme-Agent-Parameter -MaxNetworkOptimization an. Weitere Informationen zu diesem Parameter finden Sie unter Replikationssnapshot-Agent. Informationen zum Angeben von Agentparametern finden Sie unter Verwalten der Replikations-Agents.

    Bei SQL Server Compact 3.5 SP2-Abonnenten muss keep_partition_changes auf TRUE festgelegt sein, damit Löschvorgänge ordnungsgemäß verteilt werden. Wenn der Wert auf FALSE festgelegt ist, verfügt der Abonnent möglicherweise über mehr Zeilen als erwartet.

  • [ @allow_subscription_copy= ] 'allow_subscription_copy'
    Aktiviert oder deaktiviert die Option zum Kopieren der Abonnementdatenbanken, die diese Veröffentlichung abonniert haben. allow_subscription_copy ist vom Datentyp nvarchar(5), der Standardwert ist FALSE. Die Abonnementdatenbank, die kopiert wird, muss kleiner als 2 GB sein.

  • [ @allow_synctoalternate = ] 'allow_synctoalternate'
    Nur für Informationszwecke identifiziert. Nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.

  • [ @validate_subscriber_info = ] 'validate_subscriber_info'
    Listet die Funktionen auf, die verwendet werden, um eine Abonnentenpartition der veröffentlichten Daten zu definieren, wenn parametrisierte Zeilenfilter verwendet werden. validate_subscriber_info hat den Datentyp nvarchar(500) und den Standardwert NULL. Diese Informationen werden vom Merge-Agent verwendet, um die Abonnentenpartition zu überprüfen. Wenn beispielsweise SUSER_SNAME im parametrisierten Zeilenfilter verwendet wird, sollte der Parameter @validate_subscriber_info=N'SUSER_SNAME()' lauten.

    HinweisHinweis

    Sie sollten diesen Parameter nicht angeben, sondern stattdessen SQL Server zulassen, damit das Filterkriterium automatisch ermittelt wird.

  • [ @add_to_active_directory = ] 'add_to_active_directory'
    Dieser Parameter wurde als veraltet markiert und wird nur aus Gründen der Abwärtskompatibilität für Skripts unterstützt. Für Microsoft Active Directory ist das Hinzufügen von Veröffentlichungsinformationen nicht länger möglich.

  • [ @max_concurrent_merge = ] maximum_concurrent_merge
    Die maximale Anzahl von gleichzeitigen Mergeprozessen. maximum_concurrent_merge hat den Datentyp int und den Standardwert 0. Der Wert 0 bedeutet für diese Eigenschaft, dass es keine Beschränkung hinsichtlich der Anzahl gleichzeitiger Mergeprozesse gibt, die zu einem beliebigen angegebenen Zeitpunkt ausgeführt werden. Diese Eigenschaft legt eine Grenze für die Anzahl von gleichzeitigen Mergeprozessen fest, die zu einem Zeitpunkt für eine Mergeveröffentlichung ausgeführt werden können. Wenn für einen Zeitpunkt eine größere Anzahl von Mergeprozessen geplant ist, als der Wert für eine Ausführung zulässt, werden die überzähligen Aufträge in eine Warteschlange gestellt, in der sie warten, bis ein aktuell ausgeführter Mergeprozess beendet wird.

  • [ @max_concurrent_dynamic_snapshots =] max_concurrent_dynamic_snapshots
    Die maximale Anzahl von Sitzungen des Momentaufnahme-Agents, die gleichzeitig ausgeführt werden können, um gefilterte Datenmomentaufnahmen für Abonnentenpartitionen zu generieren. maximum_concurrent_dynamic_snapshots hat den Datentyp int und den Standardwert 60. Bei Angabe des Werts 0 gibt es keine Einschränkung für die Anzahl von Momentaufnahmesitzungen. Wenn zum gleichen Zeitpunkt mehr Momentaufnahmeprozesse geplant sind, als der Wert für eine Ausführung zulässt, werden die überschüssigen Aufträge in eine Warteschlange eingereiht, in der sie darauf warten, dass ein aktuell ausgeführter Momentaufnahmeprozess abgeschlossen wird.

  • [ @use_partition_groups = ] 'use_partition_groups'
    Gibt an, dass vorausberechnete Partitionen verwendet werden sollten, um den Synchronisierungsprozess zu optimieren. use_partition_groups hat den Datentyp nvarchar(5) und kann einen der folgenden Werte annehmen:

    Wert

    Beschreibung

    true

    Die Veröffentlichung verwendet vorausberechnete Partitionen.

    false

    Die Veröffentlichung verwendet keine vorausberechneten Partitionen.

    NULL (Standard)

    Die Partitionierungsstrategie wird vom System festgelegt.

    Standardmäßig werden vorausberechnete Partitionen verwendet. Für use_partition_groups muss false festgelegt werden, um die Verwendung vorausberechneter Partitionen zu vermeiden. Wird NULL festgelegt, entscheidet das System, ob vorausberechnete Partitionen verwendet werden können. Können vorausberechnete Partitionen nicht verwendet werden, dann nimmt dieser Wert die Einstellung false an, und es werden keine Fehler generiert. In diesen Fällen kann keep_partition_changes auf true festgelegt werden, um eine Optimierung zu erreichen. Weitere Informationen finden Sie unter Parametrisierte Zeilenfilter und Optimieren der Leistung parametrisierter Filter mithilfe vorausberechneter Partitionen.

  • [ @publication_compatibility_level = ] backward_comp_level
    Gibt die Abwärtskompatibiliät der Veröffentlichung an. backward_comp_level hat den Datentyp nvarchar(6) und kann einen der folgenden Werte annehmen:

    Wert

    Version

    70RTM

    SQL Server 7.0

    70SP1

    SQL Server 7.0 Service Pack 1

    70SP2

    SQL Server 7.0 Service Pack 2

    70SP3

    SQL Server 7.0 Service Pack 3

    70SP4

    SQL Server 7.0 Service Pack 4

    80RTM

    SQL Server 2000

    80SP1

    SQL Server 2000 Service Pack 1

    80SP2

    SQL Server 2000 Service Pack 2

    80SP3

    SQL Server 2000 Service Pack 3

    90RTM

    SQL Server 2005

    100RTM

    SQL Server 2008

  • [ @replicate_ddl = ] replicate_ddl
    Gibt an, ob die Schemareplikation für die Veröffentlichung unterstützt wird. replicate_ddl hat den Datentyp int und den Standardwert 1. 1 gibt an, dass auf dem Verleger ausgeführte DDL-Anweisungen (Data Definition Language, Datendefinitionssprache) repliziert werden, und 0 gibt an, dass DDL-Anweisungen nicht repliziert werden. Weitere Informationen finden Sie unter Vornehmen von Schemaänderungen in Veröffentlichungsdatenbanken.

    Der @replicate_ddl-Parameter wird berücksichtigt, wenn eine Spalte von einer DDL-Anweisung hinzugefügt wird. Der @replicate_ddl-Parameter wird ignoriert, wenn eine Spalte aus folgenden Gründen von einer DDL-Anweisung geändert oder gelöscht wird.

    • Wenn eine Spalte gelöscht wird, muss sysarticlecolumns aktualisiert werden, um zu verhindern, dass die gelöschte Spalte in neue DML-Anweisungen eingeschlossen wird, da dies zu einem Verteilungs-Agent-Fehler führen würde. Der @replicate_ddl-Parameter wird ignoriert, weil die Schemaänderung von der Replikation immer repliziert werden muss.

    • Wenn eine Spalte geändert wird, können sich der Quelldatentyp oder die NULL-Zulässigkeit geändert haben. In diesem Fall enthalten DML-Anweisungen einen Wert, der auf dem Abonnenten möglicherweise nicht mit der Tabelle kompatibel ist. Solche DML-Anweisungen können zu einem Verteilungs-Agent-Fehler führen. Der @replicate_ddl-Parameter wird ignoriert, weil die Schemaänderung von der Replikation immer repliziert werden muss.

    • Wenn eine neue Spalte von einer DDL-Anweisung hinzugefügt wird, ist die neue Spalte nicht in sysarticlecolumns enthalten. DML-Anweisungen versuchen nicht, Daten für die neue Spalte zu replizieren. Der Parameter wird berücksichtigt, weil sowohl das Replizieren als auch das Nichtreplizieren der DDL-Anweisung zulässig ist.

  • [ @allow_subscriber_initiated_snapshot = ] 'allow_subscriber_initiated_snapshot'
    Zeigt an, ob Abonnenten für diese Veröffentlichung den Momentaufnahmeprozess initialisieren können, um die gefilterte Momentaufnahme für ihre Datenpartition zu generieren. allow_subscriber_initiated_snapshot hat den Datentyp nvarchar(5) und den Standardwert FALSE. true zeigt an, dass Abonnenten den Momentaufnahmeprozess initialisieren können.

  • [ @allow_web_synchronization = ] 'allow_web_synchronization'
    Gibt an, ob die Veröffentlichung für die Websynchronisierung aktiviert ist. allow_web_synchronization hat den Datentyp nvarchar(5) und den Standardwert FALSE. true gibt an, dass Abonnements für diese Veröffentlichung per HTTPS synchronisiert werden können. Weitere Informationen finden Sie unter Websynchronisierung für die Mergereplikation. Damit SQL Server Compact 3.5 SP2-Abonnenten unterstützt werden, müssen Sie true angeben.

  • [ @web_synchronization_url= ] 'web_synchronization_url'
    Gibt den Standardwert für die Internet-URL an, die für die Websynchronisierung verwendet wird. web_synchronization_url i hat den Datentyp nvarchar(500) und den Standardwert NULL. Definiert die Standard-Internet-URL, die für die Ausführung von sp_addmergepullsubscription_agent verwendet wird, wenn keine URL explizit angegeben ist.

  • [ @allow_partition_realignment = ] 'allow_partition_realignment'
    Bestimmt, ob Löschvorgänge an den Abonnenten gesendet werden sollen, wenn eine Änderung der Zeile auf dem Verleger dazu führt, dass diese die Partition wechselt. allow_partition_realignment hat den Datentyp nvarchar(5) und den Standardwert TRUE. Ist true festgelegt worden, werden Löschvorgänge an den Abonnenten gesendet, damit die Ergebnisse eines Partitionswechsels durch das Entfernen der Daten widergespiegelt werden, die sich nicht mehr in der Partition des Abonnenten befinden. Ist false festgelegt, werden die Daten einer alten Partition auf dem Abonnenten gelassen, wobei Änderungen an diesen Daten auf dem Verleger nicht auf dem Abonnenten repliziert werden, hingegen werden Änderungen am Abonnenten auf dem Verleger repliziert. Wenn Sie allow_partition_realignment auf false festlegen, werden Daten in einem Abonnement aus einer alten Partition beibehalten, wenn die Daten noch benötigt werden.

    HinweisHinweis

    Daten, die auf dem Abonnenten verbleiben, da allow_partition_realignment auf false festgelegt ist, sollten so behandelt werden, als ob sie schreibgeschützt sind. Dies wird jedoch vom Replikationssystem nicht erzwungen.

  • [ @retention_period_unit = ] 'retention_period_unit'
    Gibt die Einheiten für die Beibehaltungsdauer an, die mit retention festgelegt wurden. retention_period_unit hat den Datentyp nvarchar(10) und kann einen der folgenden Werte annehmen.

    Wert

    Version

    day (Standard)

    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.

  • [ @generation_leveling_threshold= ] generation_leveling_threshold
    Gibt die Anzahl der Änderungen an, die in einer Generierung enthalten sind. Eine Generierung ist eine Sammlung von Änderungen, die an einen Verleger oder Abonnenten übermittelt werden. generation_leveling_threshold weist den Datentyp int und den Standardwert 1000 auf. Weitere Informationen finden Sie unter Funktionsweise der Nachverfolgung und der Enumeration bei der Mergereplikation.

  • [ @automatic_reinitialization_policy = ] automatic_reinitialization_policy
    Gibt an, ob vor einer automatischen Neuinitialisierung, die durch eine Änderung an der Veröffentlichung erforderlich wurde, Änderungen vom Abonnenten durch Hochladen übermittelt werden, wenn der Wert 1 für @force_reinit_subscription angegeben wurde. automatic_reinitialization_policy hat den Datentyp bit und den Standardwert 0. 1 bedeutet, dass Änderungen vom Abonnenten vor einer automatischen erneuten Initialisierung hochgeladen werden.

    Wichtiger HinweisWichtig

    Wenn Sie einen parametrisierten Zeilenfilter hinzufügen, löschen oder ändern, können bei der erneuten Initialisierung noch ausstehende Änderungen am Abonnenten nicht durch Hochladen auf den Verleger übertragen werden. Wenn Sie ausstehende Änderungen hochladen möchten, sollten Sie vor dem Ändern des Filters alle Abonnements synchronisieren.

  • [ @conflict_logging = ] 'conflict_logging'
    Gibt an, wo Konfliktdatensätze gespeichert werden. conflict_logging ist vom Datentyp nvarchar(15) und kann einen der folgenden Werte annehmen:

    Wert

    Beschreibung

    publisher

    Die Konfliktdatensätze werden auf dem Verleger gespeichert.

    subscriber

    Die Konfliktdatensätze werden auf dem Abonnenten gespeichert, von dem der Konflikt verursacht wurde. 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.

    NULL (Standard)

    Von der Replikation wird conflict_logging automatisch auf both festgelegt, wenn backward_comp_level den Wert 90RTM hat. In allen anderen Fällen wird publisher festgelegt.

Rückgabecodewerte

0 (Erfolg) oder 1 (Fehler)

Hinweise

sp_addmergepublication wird bei der Mergereplikation verwendet.

Zum Auflisten von Veröffentlichungsobjekten für Active Directory mit dem @add_to_active_directory-Parameter muss das SQL Server-Objekt bereits in Active Directory erstellt worden sein.

Wenn mehrere Veröffentlichungen vorhanden sind, die dasselbe Datenbankobjekt veröffentlichen, replizieren nur Veröffentlichungen, die für replicate_ddl den Wert 1 besitzen, die DDL-Anweisungen ALTER TABLE, ALTER VIEW, ALTER PROCEDURE, ALTER FUNCTION und ALTER TRIGGER. Eine ALTER TABLE DROP COLUMN DDL-Anweisung wird hingegen von allen Veröffentlichungen repliziert, die die gelöschte Spalte veröffentlichen.

Für SQL Server Compact 3.5 SP2-Abonnenten wird der Wert von alternate_snapshot_folder nur verwendet, wenn snapshot_in_default_folder auf false festgelegt ist.

Damit an einer Veröffentlichung mit aktivierter DDL-Replikation (replicate_ddl**=1**) nicht replizierende DDL-Änderungen vorgenommen werden können, muss zuerst durch Ausführen von sp_changemergepublication (Transact-SQL) für replicate_ddl der Wert 0 festgelegt werden. Nachdem die nicht replizierenden DDL-Anweisungen ausgegeben wurden, kann durch erneutes Ausführen von sp_changemergepublication die DDL-Replikation wieder aktiviert werden.

Beispiel

-- To avoid storing the login and password in the script file, the value 
-- is passed into SQLCMD as a scripting variable. For information about 
-- how to use scripting variables on the command line and in SQL Server
-- Management Studio, see the "Executing Replication Scripts" section in
-- the topic "Programming Replication Using System Stored Procedures".

--Declarations for adding a merge publication
DECLARE @publicationDB AS sysname;
DECLARE @publication AS sysname;
DECLARE @login AS sysname;
DECLARE @password AS sysname;
SET @publicationDB = N'AdventureWorks2008R2'; 
SET @publication = N'AdvWorksSalesOrdersMerge'; 
SET @login = $(Login);
SET @password = $(Password);

-- Enable merge replication on the publication database, using defaults.
USE master
EXEC sp_replicationdboption 
  @dbname=@publicationDB, 
  @optname=N'merge publish',
  @value = N'true' 

-- Create a new merge publication, explicitly setting the defaults. 
USE [AdventureWorks2008R2]
EXEC sp_addmergepublication 
-- These parameters are optional.
  @publication = @publication,
  -- optional parameters 
  @description = N'Merge publication of AdventureWorks2008R2.',
  @publication_compatibility_level  = N'90RTM';

-- Create a new snapshot job for the publication.
EXEC sp_addpublication_snapshot 
  @publication = @publication, 
  @job_login = @login, 
  @job_password = @password;
GO

Berechtigungen

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