sp_addmergepublication (Transact-SQL)

Aktualisiert: 12. Dezember 2006

Erstellt eine neue Mergepublikation. 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 Mergepublikation, die erstellt werden soll. publication hat den Datentyp sysname und keinen Standardwert. Das ALL-Schlüsselwort ist nicht zulässig. Der Name der Publikation muss innerhalb der Datenbank eindeutig sein.
  • [ @description =] 'description'
    Die Beschreibung der Publikation. 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 und als 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.

    ms176103.note(de-de,SQL.90).gifHinweis:
    Für die Beibehaltungsdauer für eine Mergepublikation 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 Publikation. sync_mode hat den Datentyp nvarchar(10) und kann einen der folgenden Werte annehmen.

    Wert Beschreibung

    native (default)

    Erstellt eine Massenkopierprogramm-Ausgabe aller Tabellen im systemeigenen Modus.

    character

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

  • [ @allow_push=] 'allow_push'
    Gibt an, ob Pushabonnements für die angegebene Publikation erstellt werden können. allow_push hat den Datentyp nvarchar(5) und den Standardwert TRUE, der angibt, dass Pushabonnements für die Publikation zulässig sind.
  • [ @allow_pull=] 'allow_pull'
    Gibt an, ob Pullabonnements für die angegebene Publikation erstellt werden können. allow_pull hat den Datentyp nvarchar(5) und den Standardwert TRUE, der angibt, dass Pullabonnements für die Publikation zulässig sind. Sie müssen TRUE angeben, damit SQL Server 2005 Compact Edition-Abonnenten unterstützt werden.
  • [ @allow_anonymous=] 'allow_anonymous'
    Gibt an, ob anonyme Abonnements für die angegebene Publikation erstellt werden können. allow_anonymous hat den Datentyp nvarchar(5) und den Standardwert TRUE, der angibt, dass anonyme Abonnements für die Publikation zulässig sind. Sie müssen true angeben, damit SQL Server 2005 Compact Edition-Abonnenten unterstützt werden.
  • [ @enabled_for_internet=] 'enabled_for_internet'
    Gibt an, ob die Publikation für das Internet aktiviert ist, und bestimmt, ob die Snapshotdateien an einen Abonnenten per FTP (File Transfer Protocol) übermittelt werden können. enabled_for_internet hat den Datentyp nvarchar(5) und den Standardwert FALSE. Wird true festgelegt, werden die Synchronisierungsdateien für die Publikation im Verzeichnis C:\Programme\Microsoft SQL Server\MSSQL\MSSQL.x\Repldata\Ftp abgelegt. Der Benutzer muss das FTP-Verzeichnis erstellen. Ist false festgelegt, dann ist die Publikation 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 Mergepublikation. dynamic_filters ist vom Datentyp nvarchar(5) und hat den Standardwert FALSE.

    ms176103.note(de-de,SQL.90).gifHinweis:
    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 How to: Define and Modify a Parameterized Row Filter for a Merge Article (Replication Transact-SQL Programming).
  • [ @snapshot_in_defaultfolder = ] 'snapshot_in_default_folder'
    Gibt an, ob die Snapshotdateien im Standardordner gespeichert werden. snapshot_in_default_folder hat den Datentyp nvarchar(5), der Standardwert ist TRUE. Ist true festgelegt, befinden sich die Snapshotdateien im Standardordner. Ist false festgelegt, werden die Snapshotdateien an einem alternativen Speicherort gespeichert, der mit 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. Snapshotdateien 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 Snapshotdateien sowohl im Standardpfad als auch im alternativen Pfad gespeichert werden.
  • [ @alt_snapshot_folder = ] 'alternate_snapshot_folder'
    Gibt den Speicherort für den alternativen Ordner für den Snapshot an. alternate_snapshot_folder hat den Datentyp nvarchar(255) und den Standardwert NULL.
  • [ @pre_snapshot_script = ] 'pre_snapshot_script'
    Gibt einen Zeiger auf einen Speicherort für SQL-Dateien an. pre_snapshot_script hat den Datentyp nvarchar(255) und den Standardwert NULL. Der Merge-Agent führt pre_snapshot_script vor allen Skripts für replizierte Objekte aus, wenn der Snapshot 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 dem Snapshot ausgeführte Skripts werden nicht auf SQL Server 2005 Compact Edition-Abonnenten ausgeführt.
  • [ @post_snapshot_script = ] 'post_snapshot_script'
    Gibt einen Zeiger auf einen Speicherort für SQL-Dateien an. post_snapshot_script hat den Datentyp nvarchar(255) und den Standardwert NULL. Der Merge-Agent führt das nach dem Snapshot 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 dem Snapshot ausgeführte Skripts werden nicht auf SQL Server 2005 Compact Edition-Abonnenten ausgeführt.
  • [ @compress_snapshot = ] 'compress_snapshot'
    Gibt an, dass der Snapshot, dessen Speicherort mit @alt_snapshot_folder festgelegt wurde, im CAB-Format von Microsoft komprimiert werden soll. compress_snapshot hat den Datentyp nvarchar(5) und den Standardwert FALSE. Mit false wird angegeben, dass der Snapshot nicht komprimiert werden soll. Mit true wird angegeben, dass der Snapshot komprimiert werden soll. Snapshotdateien, die größer als 2 GB sind, können nicht komprimiert werden. Komprimierte Snapshotdateien werden an der Stelle dekomprimiert, an der der Merge-Agent ausgeführt wird. Pullabonnements werden in der Regel mit komprimierten Snapshots verwendet, sodass die Dateien auf dem Abonnenten dekomprimiert werden. Der Snapshot im Standardordner kann nicht komprimiert werden. Sie müssen false angeben, damit SQL Server 2005 Compact Edition-Abonnenten unterstützt werden.
  • [ @ftp_address = ] 'ftp_address'
    Die Netzwerkadresse des FTP-Dienstes für den Verteiler. ftp_address hat den Datentyp sysname und den Standardwert NULL. Gibt an, wo die Publikationssnapshotdateien zum Abholen durch den Merge-Agent eines Abonnenten abgelegt werden. Da diese Eigenschaft für jede Publikation gespeichert wird, kann jede Publikation einen unterschiedlichen Wert für ftp_address aufweisen. Die Publikation muss die Weitergabe von Snapshots über FTP unterstützen.
  • [ @ftp_port= ] ftp_port
    Die Portnummer für den FTP-Dienst des Verteilers. ftp_port hat den Datentyp int und den Standard 21. Dieser Parameter legt fest, wo die Publikationssnapshotdateien zum Abholen durch den Merge-Agent eines Abonnenten abgelegt werden. Da diese Eigenschaft für jede Publikation gespeichert wird, kann jede Publikation einen eigenen Wert für ftp_port aufweisen.
  • [ @ftp_subdirectory = ] 'ftp_subdirectory'
    Gibt an, wo die Snapshotdateien zum Abholen durch den Merge-Agent des Abonnenten bereitgestellt werden, wenn die Publikation die Weitergabe von Snapshots über FTP unterstützt. ftp_subdirectory hat den Datentyp nvarchar(255) und den Standardwert NULL. Da diese Eigenschaft für jede Publikation gespeichert wird, kann jede Publikation ihren eigenen Wert für ftp_subdirctory aufweisen oder aber keine Unterverzeichnisse verwenden. Dies wird durch den Wert NULL angegeben.

    Wenn Snapshots für Publikationen vorab mit parametrisierten Filtern erstellt werden, dann muss der Datensnapshot für jede Abonnentenpartition jeweils in einem eigenen Ordner abgelegt sein. Die Verzeichnisstruktur für vorab über FTP generierte Snapshots muss der folgenden Struktur entsprechen:

    alternate_snapshot_folder\ftp\publisher_publicationDB_publication\partitionID.

    ms176103.note(de-de,SQL.90).gifHinweis:
    Die oben kursiv dargestellten Werte sind von den Festlegungen für die Publikation und Abonnentenpartition abhängig.
  • [ @ftp_login = ] 'ftp_login'
    Der Benutzername, der für die Verbindung mit dem FTP-Dienst verwendet wird. ftp_login hat den Datentyp sysname und den Standardwert 'anonymous'.
  • [ @ftp_password = ] 'ftp_password'
    Das Benutzerkennwort, mit dem eine Verbindung mit dem FTP-Dienst hergestellt wird. ftp_password hat den Datentyp sysname und den Standardwert NULL.

    ms176103.security(de-de,SQL.90).gifSicherheitshinweis:
    Lassen Sie das Kennwortfeld nicht leer. 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. Wenn vorausberechnete Partitionen verwendet werden, legen Sie für use_partition_groups die Einstellung true und für keep_partition_changes die Einstellung false fest. Weitere Informationen finden Sie unter Optimieren der Leistung parametrisierter Filter mithilfe vorausberechneter Partitionen.

    ms176103.note(de-de,SQL.90).gifHinweis:
    Wenn Sie den Wert true für keep_partition_changes angeben, geben Sie den Wert 1 für den Snapshot-Agent-Parameter -MaxNetworkOptimization an. Weitere Informationen zu diesem Parameter finden Sie unter Replication Snapshot Agent. Informationen zum Angeben von Agentparametern finden Sie unter Verwalten der Replikations-Agents.
  • [ @allow_subscription_copy= ] 'allow_subscription_copy'
    Aktiviert oder deaktiviert die Option zum Kopieren der Abonnementdatenbanken, die diese Publikation abonniert haben. allow_subscription_copy hat den Datentyp nvarchar(5) und den Standardwert FALSE. Die Abonnementdatenbank, die kopiert wird, muss kleiner als 2 GB sein.
  • [ @allow_synctoalternate = ] 'allow_synctoalternate'
    Aktiviert einen alternativen Synchronisierungspartner für die Synchronisierung mit diesem Verleger. allow_synctoalternate hat den Datentyp nvarchar(5) und den Standardwert FALSE. Alternative Synchronisierungspartner werden für SQL Server 2005 Compact Edition-Abonnenten nicht unterstützt.
  • [ @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 (Transact-SQL) im parametrisierten Zeilenfilter verwendet wird, sollte der Parameter @validate_subscriber_info=N'SUSER_SNAME()' lauten.

    ms176103.note(de-de,SQL.90).gifHinweis:
    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 Publikationsinformationen 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. Wird 0 für diese Eigenschaft festgelegt, bedeutet dies, dass es keine Einschränkung für die Anzahl von gleichzeitigen Mergeprozessen gibt, die zu einem bestimmten Zeitpunkt ausgeführt werden. Diese Eigenschaft legt eine Grenze für die Anzahl von gleichzeitigen Mergeprozessen fest, die zu einem Zeitpunkt für eine Mergepublikation 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 Snapshot-Agents, die gleichzeitig ausgeführt werden können, um gefilterte Datensnapshots für Abonnentenpartitionen zu generieren. maximum_concurrent_dynamic_snapshots hat den Datentyp int und den Standardwert 0. Wenn 0 angegeben wird, gibt es keine Einschränkung für die Anzahl von Snapshotsitzungen. Wenn zum gleichen Zeitpunkt mehr Snapshotprozesse 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 Snapshotprozess 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 Publikation verwendet vorausberechnete Partitionen.

    false

    Die Publikation verwendet keine vorausberechneten Partitionen.

    NULL (Standard)

    Die Partitionierungsstrategie wird vom System festgelegt.

    Standardmäßig werden vorausberechnete Partitionen verwendet. Für use_partition_groups muss die Einstellung 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 Publikation an. backward_comp_level hat den Datentyp nvarchar(6) und kann einen der folgenden Werte annehmen:

    Wert Version

    70RTM

    Microsoft 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

    Microsoft SQL Server 2000

    80SP1

    SQL Server 2000 Service Pack 1

    80SP3 (Standard)

    SQL Server 2000 Service Pack 3

    90RTM

    Microsoft SQL Server 2005

  • [ @replicate_ddl= ] replicate_ddl
    Zeigt an, ob die Schemareplikation für die Publikation unterstützt wird. replicate_ddl hat den Datentyp int und den Standardwert 1. 1 gibt an, dass DDL-Anweisungen (Data Definition Language), die auf dem Verleger ausgeführt werden, repliziert werden, und 0 zeigt an, dass DDL-Anweisungen nicht repliziert werden. Weitere Informationen finden Sie unter Vornehmen von Schemaänderungen in Publikationsdatenbanken.
  • [ @allow_subscriber_initiated_snapshot= ] 'allow_subscriber_initiated_snapshot'
    Zeigt an, ob Abonnenten für diese Publikation den Snapshotprozess initialisieren können, um den gefilterten Snapshot 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 Snapshotprozess initialisieren können.
  • [ @allow_web_synchronization = ] 'allow_web_synchronization'
    Gibt an, ob die Publikation 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 Publikation per HTTPS synchronisiert werden können. Weitere Informationen finden Sie unter Websynchronisierung für die Mergereplikation. Sie müssen true angeben, damit SQL Server 2005 Compact Edition-Abonnenten unterstützt werden.
  • [ @web_synchronization_url= ] 'web_synchronization_url'
    Gibt den Standardwert für den Internet-URL an, der für die Websynchronisierung verwendet wird. web_synchronization_url hat den Datentyp nvarchar(500) und den Standardwert NULL. Definiert den Standard-Internet-URL, der für die Ausführung von sp_addmergepullsubscription_agent verwendet wird, wenn kein 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. allow_partition_realignment wird dann auf false festgelegt, wenn Daten einer alten Partition in einem Abonnement gespeichert bleiben sollen, da auf diese Daten aus Gründen des Verlaufs zugegriffen werden muss.

    ms176103.note(de-de,SQL.90).gifHinweis:
    Daten, die auf dem Abonnenten gespeichert sind, da für allow_partition_realignment die Einstellung false festgelegt ist, sollten als schreibgeschützte Daten behandelt werden. Dieses Verhalten 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 (default)

    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 Auflistung 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 Publikation erforderlich wurde, Änderungen vom Abonnenten per Upload ü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 per Upload übermittelt werden, bevor eine automatische Neuinitialisierung erfolgt.

    ms176103.note(de-de,SQL.90).gifWichtig:
    Wenn Sie einen parametrisierten Zeilenfilter hinzufügen, löschen oder ändern, können bei der erneuten Initialisierung noch ausstehende Änderungen am Abonnenten nicht mithilfe eines Uploads auf den Verleger übertragen werden. Wenn Sie ausstehende Änderungen uploaden 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 2005 Compact Edition-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 Publikationsobjekten für Active Directory mit dem @add_to_active_directory-Parameter muss das SQL Server-Objekt bereits in Active Directory erstellt worden sein.

Sind mehrere Publikationen vorhanden, die das gleiche Datenbankobjekt veröffentlichen, dann werden die Anweisungen ALTER TABLE, ALTER VIEW, ALTER PROCEDURE, ALTER FUNCTION und ALTER TRIGGER DDL nur von den Publikationen repliziert, bei denen replicate_ddl auf den Wert 1 festgelegt ist. Eine ALTER TABLE DROP COLUMN DDL-Anweisung wird hingegen von allen Publikationen repliziert, die die gelöschte Spalte veröffentlichen.

Für SQL Server 2005 Compact Edition-Abonnenten wird der Wert von alternate_snapshot_folder nur dann verwendet, wenn snapshot_in_default_folder auf false festgelegt wurde.

Ist die DDL-Replikation für eine Publikation aktiviert (replicate_ddl**=1**) und sollen nicht replizierende DDL-Änderungen an der Publikation vorgenommen werden, dann muss sp_changemergepublication zuerst ausgeführt werden, um replicate_ddl auf 0 festzulegen. Wenn die nicht replizierenden DDL-Anweisungen ausgestellt wurden, kann sp_changemergepublication erneut ausgeführt werden, um die DDL-Replikation wieder zu aktivieren.

Berechtigungen

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

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'AdventureWorks'; 
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 [AdventureWorks]
EXEC sp_addmergepublication 
-- These parameters are optional.
  @publication = @publication,
  -- optional parameters 
  @description = N'Merge publication of AdventureWorks.',
  @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

Siehe auch

Verweis

sp_changemergepublication (Transact-SQL)
sp_dropmergepublication (Transact-SQL)
sp_helpmergepublication (Transact-SQL)
Gespeicherte Replikationsprozeduren (Transact-SQL)

Andere Ressourcen

How to: Create a Publication (Replication Transact-SQL Programming)
Veröffentlichen von Daten und Datenbankobjekten

Hilfe und Informationen

Informationsquellen für SQL Server 2005

Änderungsverlauf

Version Verlauf

12. Dezember 2006

Neuer Inhalt:
  • Es wurden Informationen zur Verwendung des Snapshot-Agent-Parameters -MaxNetworkOptimization hinzugefügt.
  • Informationen zum generation_leveling_threshold-Parameter wurden hinzugefügt.