sp_addmergearticle (Transact-SQL)

Aktualisiert: 14. April 2006

Fügt einer vorhandenen Mergepublikation einen Artikel hinzu. Diese gespeicherte Prozedur wird auf dem Verleger mit der Publikationsdatenbank ausgeführt.

Themenlink (Symbol)Transact-SQL-Syntaxkonventionen

Syntax

sp_addmergearticle [ @publication = ] 'publication' 
        , [ @article = ] 'article' 
        , [ @source_object = ] 'source_object' 
    [ , [ @type = ] 'type' ] 
    [ , [ @description = ] 'description' ] 
    [ , [ @column_tracking = ] 'column_tracking' ] 
    [ , [ @status = ] 'status' ] 
    [ , [ @pre_creation_cmd = ] 'pre_creation_cmd' ] 
    [ , [ @creation_script = ] 'creation_script' ] 
    [ , [ @schema_option = ] schema_option ] 
    [ , [ @subset_filterclause = ] 'subset_filterclause' ] 
    [ , [ @article_resolver = ] 'article_resolver' ] 
    [ , [ @resolver_info = ] 'resolver_info' ] 
    [ , [ @source_owner = ] 'source_owner' ] 
    [ , [ @destination_owner = ] 'destination_owner' ] 
    [ , [ @vertical_partition = ] 'vertical_partition' ] 
    [ , [ @auto_identity_range = ] 'auto_identity_range' ] 
    [ , [ @pub_identity_range = ] pub_identity_range ] 
    [ , [ @identity_range = ] identity_range ] 
    [ , [ @threshold = ] threshold ] 
    [ , [ @verify_resolver_signature = ] verify_resolver_signature ] 
    [ , [ @destination_object = ] 'destination_object' ] 
    [ , [ @allow_interactive_resolver = ] 'allow_interactive_resolver' ] 
    [ , [ @fast_multicol_updateproc = ] 'fast_multicol_updateproc' ] 
    [ , [ @check_permissions = ] check_permissions ] 
    [ , [ @force_invalidate_snapshot = ] force_invalidate_snapshot ]
    [ , [ @published_in_tran_pub = ] 'published_in_tran_pub' ]
    [ , [ @force_reinit_subscription = ] force_reinit_subscription ]
    [ , [ @logical_record_level_conflict_detection = ] 'logical_record_level_conflict_detection' ]
    [ , [ @logical_record_level_conflict_resolution = ] 'logical_record_level_conflict_resolution' ]
    [ , [ @partition_options = ] partition_options ]
    [ , [ @processing_order = ] processing_order ]
    [ , [ @subscriber_upload_options = ] subscriber_upload_options ]
    [ , [ @identityrangemanagementoption = ] 'identityrangemanagementoption' ]
    [ , [ @delete_tracking = ] delete_tracking ]
    [ , [ @compensate_for_errors = ] 'compensate_for_errors' ] 
    [ , [ @stream_blob_columns = ] 'stream_blob_columns' ]

Argumente

  • [ @publication= ] 'publication'
    Der Name der Publikation, die den Artikel enthält. publication ist ein Wert vom Datentyp sysname und weist keinen Standardwert auf.
  • [ @article= ] 'article'
    Ist der Name des Artikels. Der Name muss innerhalb der Publikation eindeutig sein. article ist ein Wert vom Datentyp sysname und weist keinen Standardwert auf. article muss sich auf dem lokalen Computer mit Microsoft SQL Server befinden und den Regeln für Bezeichner entsprechen.
  • [ @source_object= ] 'source_object'
    Das zu veröffentlichende Datenbankobjekt. source_object ist ein Wert vom Datentyp sysname und weist keinen Standardwert auf. Weitere Informationen zu den Objekttypen, die mithilfe der Mergereplikation veröffentlicht werden können, finden Sie unter Veröffentlichen von Daten und Datenbankobjekten.
  • [ @type= ] 'type'
    Der Artikeltyp. type ist ein Wert vom Datentyp sysname. Der Standardwert ist table. Die folgenden Werte sind möglich.

    Wert Beschreibung

    table (Standard)

    Tabelle mit Schema und Daten. Die Replikation überwacht die Tabelle, um die zu replizierenden Daten zu ermitteln.

    func schema only

    Nur Funktion mit Schema

    indexed view schema only

    Nur indizierte Sicht mit Schema

    proc schema only

    Nur gespeicherte Prozedur mit Schema

    Nur Synonymschema

    Nur Synonym mit Schema

    view schema only

    Nur Sicht mit Schema

  • [ @description= ] 'description'
    Eine Beschreibung für den Artikel. description ist ein Wert vom Datentyp nvarchar(255). Der Standardwert ist NULL.
  • [ @column_tracking= ] 'column_tracking'
    Die Einstellung für die Nachverfolgung auf Spaltenebene. column_tracking ist ein Wert vom Datentyp nvarchar(10), der Standardwert ist FALSE. Mit true wird die Spaltennachverfolgung aktiviert. Mit false wird die Spaltennachverfolgung deaktiviert und die Konflikterkennung auf der Zeilenebene belassen. Wenn die Tabelle bereits in anderen Mergereplikationen veröffentlicht ist, müssen Sie denselben Wert für die Spaltenprotokollierung verwenden, der von bereits bestehenden Artikeln für diese Tabelle verwendet wird. Dieser Parameter ist nur für Tabellenartikel spezifisch.

    ms174329.note(de-de,SQL.90).gifHinweis:
    Wenn Zeilennachverfolgung zur Konflikterkennung verwendet wird (Standard), kann die Basistabelle maximal 1024 Spalten enthalten. Die Spalten müssen aber aus dem Artikel herausgefiltert werden, sodass maximal 246 Spalten veröffentlicht werden. Wenn Spaltennachverfolgung verwendet wird, kann die Basistabelle maximal 246 Spalten enthalten. Weitere Informationen zur Nachverfolgungsebene finden Sie im Abschnitt zur Nachverfolgungsebene unter Konflikterkennung und -lösung bei der Mergereplikation.
  • [ @status= ] 'status'
    Der Status des Artikels. status ist ein Wert vom Datentyp nvarchar(10). Der Standardwert ist unsynced. Bei active wird das Anfangsverarbeitungsskript zum Veröffentlichen der Tabelle ausgeführt. Bei unsynced wird das Anfangsverarbeitungsskript zum Veröffentlichen der Tabelle ausgeführt, wenn der Snapshot-Agent das nächste Mal ausgeführt wird.
  • [ @pre_creation_cmd= ] 'pre_creation_cmd'
    Gibt an, welche Vorgänge das System ausführen soll, wenn die Tabelle beim Anwenden des Snapshots auf dem Abonnenten vorhanden ist. pre_creation_cmd ist ein Wert vom Datentyp nvarchar(10). Die folgenden Werte sind möglich.

    Wert Beschreibung

    none

    Wenn die Tabelle bereits auf dem Abonnenten vorhanden ist, wird keine Aktion ausgeführt.

    delete

    Ein Löschvorgang wird auf der Grundlage der WHERE-Klausel im Teilmengenfilter ausgegeben.

    drop (Standard)

    Die Tabelle wird gelöscht, bevor sie neu erstellt wird. Erforderlich für die Unterstützung von Microsoft SQL Server 2005 Compact Edition-Abonnenten.

    truncate

    Schneidet die Zieltabelle ab.

  • [ @creation_script= ] 'creation_script'
    Pfad und Name eines optionalen Artikelschemaskripts, das für die Erstellung des Artikels in der Abonnementdatenbank verwendet wurde. creation_script ist ein Wert vom Datentyp nvarchar(255). Der Standardwert ist NULL.

    ms174329.note(de-de,SQL.90).gifHinweis:
    Erstellungsskripts werden auf SQL Server 2005 Compact Edition-Abonnenten nicht ausgeführt.
  • [ @schema_option= ] schema_option
    Das Bitmuster der Schemagenerierungsoption für den Artikel. schema_option ist ein Wert vom Datentyp binary(8) und kann das | (Bitweises OR)-Produkt mindestens eines der folgenden Werte sein.

    Wert

  • [ @subset_filterclause= ] 'subset_filterclause'
    Eine WHERE-Klausel, mit der das horizontale Filtern von Tabellenartikeln festgelegt wird, ohne dass das Wort WHERE verwendet wird. subset_filterclause ist vom Datentyp nvarchar(1000). Der Standardwert ist eine leere Zeichenfolge.

    ms174329.note(de-de,SQL.90).gifWichtig:
    Aus Leistungsgründen ist es empfehlenswert, keine Funktionen auf Spaltennamen in Klauseln für parametrisierte Zeilenfilter anzuwenden, wie z. B. LEFT([MyColumn]) = SUSER_SNAME(). Wenn Sie HOST_NAME in einer Filterklausel verwenden und den Wert HOST_NAME überschreiben, müssen Sie möglicherweise Datentypen mithilfe von CONVERT konvertieren. Weitere Informationen zu bewährten Methoden für diesen Fall finden Sie im Abschnitt zum Überschreiben des HOST_NAME()-Wertes unter Parametrisierte Zeilenfilter.
  • [ @article_resolver= ] 'article_resolver'
    Der COM-basierte Konfliktlöser, der für die Auflösung von Konflikten für den Tabellenartikel verwendet wird, oder die .NET Framework-Assembly, die für die Ausführung von benutzerdefinierter Geschäftslogik für den Tabellenartikel aufgerufen wird. article_resolver ist ein Wert vom Datentyp varchar(255). Der Standardwert ist NULL. Verfügbare Werte für diesen Parameter sind im Abschnitt zu benutzerdefinierten Konfliktlösern von Microsoft aufgelistet. Wenn der bereitgestellte Wert nicht zu den Konfliktlösern von Microsoft zählt, dann verwendet SQL Server den angegebenen Konfliktlöser anstelle des vom System bereitgestellten Konfliktlösers. sp_enumcustomresolvers listet die verfügbaren benutzerdefinierten Konfliktlöser auf. Weitere Informationen finden Sie unter Ausführen der Geschäftslogik während der Mergesynchronisierung und Erweiterte Konflikterkennung und -lösung bei der Mergereplikation.
  • [ @resolver_info= ] 'resolver_info'
    Wird für die Angabe zusätzlicher Informationen verwendet, die für einen benutzerdefinierten Konfliktlöser erforderlich sind. Einige der Konfliktlöser von Microsoft erfordern eine als Eingabe für den Konfliktlöser bereitgestellte Spalte. resolver_info ist ein Wert vom Datentyp nvarchar(255). Der Standardwert ist NULL. Weitere Informationen finden Sie unter Microsoft COM-basierte Konfliktlöser.
  • [ @source_owner= ] 'source_owner'
    Der Name des Besitzers von source_object. source_owner ist ein Wert vom Datentyp sysname. Der Standardwert ist NULL. Bei NULL wird der aktuelle Benutzer als Besitzer angenommen.
  • [ @destination_owner= ] 'destination_owner'
    Der Besitzer des Objekts in der Abonnementdatenbank, falls der Besitzer nicht 'dbo' ist. destination_owner ist ein Wert vom Datentyp sysname. Der Standardwert ist NULL. Bei NULL wird dbo als Besitzer angenommen.
  • [ @vertical_partition= ] 'column_filter'
    Aktiviert und deaktiviert die Spaltenfilterung für einen Tabellenartikel. vertical_partition ist ein Wert vom Datentyp nvarchar(5). Der Standardwert ist FALSE.

    false zeigt an, dass kein vertikales Filtern ausgeführt wird und alle Spalten veröffentlicht werden.

    Bei true werden alle Spalten außer dem deklarierten Primärschlüssel und den ROWGUID-Spalten gelöscht. Spalten werden mithilfe von sp_mergearticlecolumn hinzugefügt.

  • [ @auto_identity_range= ] 'automatic_identity_range'
    Aktiviert und deaktiviert die automatische Behandlung von Identitätsbereichen für diesen Tabellenartikel in einer Publikation bei der Erstellung. auto_identity_range ist ein Wert vom Datentyp nvarchar(5). Der Standardwert ist FALSE. Bei true ist das automatische Behandeln von Identitätsbereichen aktiviert, bei false ist es deaktiviert.

    ms174329.note(de-de,SQL.90).gifHinweis:
    auto_identity_range wurde als veraltet markiert und steht nur aus Gründen der Abwärtskompatibilität zur Verfügung. Zur Angabe von Verwaltungsoptionen für Identitätsbereiche sollten Sie identityrangemanagementoption verwenden. Weitere Informationen finden Sie unter Replizieren von Identitätsspalten.
  • [ @pub_identity_range= ] pub_identity_range
    Steuert die Identitätsbereichsgröße, die einem Abonnenten mit einem Serverabonnement zugeordnet ist, wenn die automatische Identitätsbereichsverwaltung verwendet wird. Dieser Identitätsbereich ist für einen Wiederveröffentlichungsabonnenten für die Zuordnung zu dessen Abonnenten reserviert. pub_identity_range ist ein Wert vom Datentyp bigint. Der Standardwert ist NULL. Sie müssen diesen Parameter angeben, wenn identityrangemanagementoption auf auto oder auto_identity_range auf true festgelegt ist.
  • [ @identity_range= ] identity_range
    Steuert die Größe des Identitätsbereichs, die sowohl dem Verleger als auch dem Abonnenten zugeordnet wird, wenn die automatische Identitätsbereichsverwaltung verwendet wird. identity_range ist ein Wert vom Datentyp bigint. Der Standardwert ist NULL. Sie müssen diesen Parameter angeben, wenn identityrangemanagementoption auf auto oder auto_identity_range auf true festgelegt ist.

    ms174329.note(de-de,SQL.90).gifHinweis:
    identity_range steuert die Identitätsbereichsgröße bei Wiederveröffentlichungsabonnenten, die frühere Versionen von SQL Server verwenden.
  • [ @threshold= ] threshold
    Prozentwert, der steuert, wann der Merge-Agent einen neuen Identitätsbereich zuweist. Wenn der in threshold angegebene Prozentsatz verwendet wird, erstellt der Merge-Agent einen neuen Identitätsbereich. threshold ist ein Wert vom Datentyp int. Der Standardwert ist NULL. Sie müssen diesen Parameter angeben, wenn identityrangemanagementoption auf auto oder auto_identity_range auf true festgelegt ist.
  • [ @verify_resolver_signature= ] verify_resolver_signature
    Gibt an, ob eine digitale Signatur überprüft wird, bevor ein Konfliktlöser in einer Mergereplikation verwendet wird. verify_resolver_signature ist ein Wert vom Datentyp int. Der Standardwert ist 1.

    0 gibt an, dass die Signatur nicht überprüft wird.

    1 gibt an, dass die Signatur überprüft wird, um festzustellen, ob sie aus einer vertrauenswürdigen Quelle stammt.

  • [ @destination_object= ] 'destination_object'
    Der Name des Objekts in der Abonnementdatenbank. destination_object ist ein Wert vom Datentyp sysname. Der Standardwert entspricht dem Wert von @source_object. Dieser Parameter kann nur angegeben werden, wenn der Artikel vom Typ schema only ist, wie z. B. ein Artikel für gespeicherte Prozeduren, Sichten und UDFs. Handelt es sich bei dem angegebenen Artikel um einen Tabellenartikel, setzt der Wert in @source_object den Wert in destination_object außer Kraft.
  • [ @allow_interactive_resolver= ] 'allow_interactive_resolver'
    Aktiviert oder deaktiviert die Verwendung des interaktiven Konfliktlösers für einen Artikel. allow_interactive_resolver ist ein Wert vom Datentyp nvarchar(5). Der Standardwert ist FALSE. Mit true wird die Verwendung des interaktiven Konfliktlösers aktiviert, mit false wird sie deaktiviert.

    ms174329.note(de-de,SQL.90).gifHinweis:
    Der interaktive Konfliktlöser wird von SQL Server 2005 Compact Edition-Abonnenten nicht unterstützt.
  • [ @fast_multicol_updateproc= ] 'fast_multicol_updateproc'
    Dieser Parameter wurde als veraltet markiert und wird aus Gründen der Abwärtskompatibilität von Skripts beibehalten.
  • [ @check_permissions= ] check_permissions
    Ein Bitmuster der Berechtigungen auf Tabellenebene, die überprüft werden, wenn der Merge-Agent die Änderungen auf dem Verleger anwendet. Wenn das vom Mergeprozess verwendete Anmelde-/Benutzerkonto auf dem Verleger nicht über die richtigen Tabellenberechtigungen verfügt, werden die ungültigen Änderungen als Konflikte protokolliert. check_permissions ist ein Wert vom Datentyp int und kann das | (Bitweises OR)-Produkt mindestens eines der folgenden Werte sein.

    Wert Beschreibung

    0x00 (Standard)

    Berechtigungen werden nicht überprüft.

    0x10

    Überprüft Berechtigungen auf dem Verleger, bevor auf einem Abonnenten ausgeführte Einfügevorgänge geuploadet werden können.

    0x20

    Überprüft Berechtigungen auf dem Verleger, bevor auf einem Abonnenten ausgeführte Aktualisierungsvorgänge geuploadet werden können.

    0x40

    Überprüft Berechtigungen auf dem Verleger, bevor auf einem Abonnenten ausgeführte Löschvorgänge geuploadet werden können.

  • [ @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.

    Durch 0 wird angegeben, dass der Snapshot nicht durch das Hinzufügen eines Artikels 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.

    1 gibt an, dass der Snapshot durch Hinzufügen eines Artikels ungültig werden kann. Wenn Abonnements vorhanden sind, die einen neuen Snapshot erfordern, wird mit diesem Wert die Berechtigung erteilt, den vorhandenen Snapshot als veraltet zu markieren und einen neuen Snapshot zu generieren. force_invalidate_snapshot wird auf 1 festgelegt, wenn ein Artikel einer Publikation mit einem vorhandenen Snapshot hinzugefügt wird.

  • [ @published_in_tran_pub= ] 'published_in_tran_pub'
    Zeigt an, dass ein Artikel in einer Mergepublikation auch in einer Transaktionspublikation veröffentlicht wird. published_in_tran_pub ist ein Wert vom Datentyp nvarchar(5). Der Standardwert ist FALSE. true gibt an, dass der Artikel auch in einer Transaktionspublikation veröffentlicht wird.
  • [ @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 ein Wert vom Datentyp bit. Der Standardwert ist 0.

    Durch 0 wird angegeben, dass das Abonnement nicht durch das Hinzufügen eines Artikels 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.

    1 gibt an, dass vorhandene Abonnements durch Änderungen am Mergeartikel erneut initialisiert werden können. Außerdem wird mit diesem Wert die Berechtigung zur erneuten Initialisierung der Abonnements erteilt. force_reinit_subscription wird auf 1 festgelegt, wenn subset_filterclause einen parametrisierten Zeilenfilter angibt.

  • [ @logical_record_level_conflict_detection= ] 'logical_record_level_conflict_detection'
    Gibt die Ebene der Konflikterkennung für einen Artikel an, der ein Mitglied eines logischen Datensatzes ist. logical_record_level_conflict_detection ist ein Wert vom Datentyp nvarchar(5). Der Standardwert ist FALSE.

    true gibt an, dass ein Konflikt erkannt wird, wenn an einer beliebigen Stelle im logischen Datensatz Änderungen vorgenommen werden.

    false gibt an, dass die Standardkonflikterkennung verwendet wird, die durch column_tracking angegeben wird. Weitere Informationen finden Sie unter Gruppieren von Änderungen an verknüpften Zeilen mithilfe von logischen Datensätzen.

    ms174329.note(de-de,SQL.90).gifHinweis:
    Da logische Datensätze von SQL Server 2005 Compact Edition-Abonnenten nicht unterstützt werden, müssen Sie den Wert false für logical_record_level_conflict_detection angeben, um diese Abonnenten zu unterstützen.
  • [ @logical_record_level_conflict_resolution= ] 'logical_record_level_conflict_resolution'
    Gibt die Ebene der Konfliktlösung für einen Artikel an, der ein Mitglied eines logischen Datensatzes ist. logical_record_level_conflict_resolution ist ein Wert vom Datentyp nvarchar(5). Der Standardwert ist FALSE.

    true gibt an, dass der gesamte gewinnende logische Datensatz den verlierenden logischen Datensatz überschreibt.

    false gibt an, dass Gewinnerzeilen nicht auf den logischen Datensatz eingeschränkt sind. Wenn logical_record_level_conflict_detection den Wert true besitzt, muss logical_record_level_conflict_resolution ebenfalls auf true festgelegt werden. Weitere Informationen finden Sie unter Gruppieren von Änderungen an verknüpften Zeilen mithilfe von logischen Datensätzen.

    ms174329.note(de-de,SQL.90).gifHinweis:
    Da logische Datensätze von SQL Server 2005 Compact Edition-Abonnenten nicht unterstützt werden, müssen Sie den Wert false für logical_record_level_conflict_resolution angeben, um diese Abonnenten zu unterstützen.
  • [ @partition_options= ] partition_options
    Definiert die Vorgehensweise beim Partitionieren von Daten im Artikel. Dies ermöglicht Leistungsoptimierungen, wenn alle Zeilen nur zu einer einzigen Partition oder zu einem einzigen Abonnement gehören. partition_options ist ein Wert vom Datentyp tinyint. Die folgenden Werte sind möglich.

    Wert Beschreibung

    0 (Standard)

    Das Filtern für den Artikel ist entweder statisch oder ergibt keine eindeutige Untermenge von Daten für jede Partition, d. h. eine "überlappende" Partition.

    1

    Die Partitionen überlappen, und beim Abonnenten vorgenommene Updates der Datenbearbeitungssprache (DML, Data Manipulation Language) können nicht die Partition ändern, zu der eine Zeile gehört.

    2

    Das Filtern für den Artikel ergibt nicht überlappende Partitionen. Mehrere Abonnenten können jedoch die gleiche Partition erhalten.

    3

    Das Filtern für den Artikel ergibt nicht überlappende Partitionen, die für jedes Abonnement eindeutig sind.

    ms174329.note(de-de,SQL.90).gifHinweis:
    Wenn die Quelltabelle eines Artikels bereits in einer anderen Publikation veröffentlicht wurde, muss der Wert von partition_options für beide Artikel gleich sein.
  • [ @processing_order= ] processing_order
    Zeigt die Verarbeitungsreihenfolge von Artikeln in einer Mergepublikation an. processing_order ist ein Wert vom Datentyp int. Der Standardwert ist 0. 0 gibt an, dass der Artikel ungeordnet ist, und jeder andere Wert stellt den Ordnungswert der Verarbeitungsreihenfolge für diesen Artikel dar. Artikel werden in der Reihenfolge vom niedrigsten zum höchsten Wert verarbeitet. Wenn zwei Artikel den gleichen Wert besitzen, wird die Verarbeitungsreihenfolge durch die Reihenfolge des Artikelspitznamens in der sysmergearticles-Systemtabelle bestimmt. Weitere Informationen finden Sie unter Angeben der Verarbeitungsreihenfolge von Mergeartikeln.
  • [ @subscriber_upload_options= ] subscriber_upload_options
    Definiert Einschränkungen für Updates, die bei einem Abonnenten mit einem Clientabonnement vorgenommen werden. Weitere Informationen finden Sie unter Optimieren der Leistung der Mergereplikation durch nur downloadbare Artikel. subscriber_upload_options ist ein Wert vom Datentyp tinyint. Die folgenden Werte sind möglich.

    Wert Beschreibung

    0 (Standard)

    Keine Einschränkungen. Auf dem Abonnenten vorgenommene Änderungen werden auf den Verleger geuploadet.

    1

    Änderungen sind auf dem Abonnenten zulässig, werden jedoch nicht auf den Verleger geuploadet.

    2

    Änderungen sind auf dem Abonnenten nicht zulässig.

    ms174329.note(de-de,SQL.90).gifHinweis:
    Wenn die Quelltabelle eines Artikels bereits in einer anderen Publikation veröffentlicht wurde, muss der Wert von subscriber_upload_options für beide Artikel gleich sein.
  • [ @identityrangemanagementoption= ] identityrangemanagementoption
    Gibt an, wie die Verwaltung des Identitätsbereichs für den Artikel behandelt wird. identityrangemanagementoption ist ein Wert vom Datentyp nvarchar(10). Die folgenden Werte sind möglich.

    Wert Beschreibung

    none

    Deaktiviert die Verwaltung des Identitätsbereichs.

    manual

    Kennzeichnet die Identitätsspalte mithilfe von NOT FOR REPLICATION, um die manuelle Behandlung des Identitätsbereichs zu aktivieren.

    auto

    Gibt die automatische Verwaltung von Identitätsbereichen an.

    NULL (Standard)

    Standardmäßig wird none verwendet, wenn der Wert von auto_identity_range nicht true lautet.

    Wenn der Wert von identityrangemanagementoption NULL ist, wird der Wert von auto_identity_range aus Gründen der Abwärtskompatibilität überprüft. Wenn der Wert von identityrangemanagementoption jedoch nicht NULL ist, wird der Wert von auto_identity_range ignoriert. Weitere Informationen finden Sie unter Replizieren von Identitätsspalten.

  • [ @delete_tracking= ] 'delete_tracking'
    Zeigt an, ob Löschvorgänge repliziert werden. delete_tracking ist ein Wert vom Datentyp nvarchar(5). Der Standardwert ist TRUE. false zeigt an, dass Löschvorgänge nicht repliziert werden, und true zeigt an, dass Löschvorgänge repliziert werden. Dies ist das übliche Verhalten für die Mergereplikation. Wenn delete_tracking auf false festgelegt ist, müssen auf dem Abonnenten gelöschte Zeilen auf dem Verleger manuell entfernt werden, und auf dem Verleger gelöschte Zeilen müssen auf dem Abonnenten manuell entfernt werden.

    ms174329.note(de-de,SQL.90).gifWichtig:
    Das Festlegen von delete_tracking auf false führt zu einer Nichtkonvergenz. Wenn die Quelltabelle eines Artikels bereits in einer anderen Publikation veröffentlicht wurde, muss der Wert von delete_tracking für beide Artikel gleich sein.
    ms174329.note(de-de,SQL.90).gifHinweis:
    delete_tracking-Optionen können nicht mithilfe der Dialogfelder Assistent für neue Publikation oder Publikationseigenschaften festgelegt werden.
  • [ @compensate_for_errors= ] 'compensate_for_errors'
    Zeigt an, ob kompensierende Aktionen ausgeführt werden, wenn bei der Synchronisierung Fehler auftreten. compensate_for_errors i ist ein Wert vom Datentyp nvarchar(5). Der Standardwert ist FALSE. Wenn dieser Wert auf true festgelegt wird, führen Änderungen, die während der Synchronisierung nicht auf einem Abonnenten oder Verleger angewendet werden können, immer zu kompensierenden Aktionen, um die Änderung rückgängig zu machen. Ein falsch konfigurierter Abonnent, der einen Fehler generiert, kann jedoch bewirken, dass Änderungen auf anderen Abonnenten und Verlegern rückgängig gemacht werden. false deaktiviert diese kompensierenden Aktionen. Die Fehler werden jedoch wie bei der Kompensation immer noch protokolliert, und in nachfolgenden Mergevorgängen wird weiterhin versucht, die Änderungen anzuwenden, bis dies erfolgreich ist.

    ms174329.note(de-de,SQL.90).gifHinweis:
    Bei Pullabonnements auf Abonnenten mit Microsoft SQL Server 2000, Version 8.00.858 und früher (einschließlich Service Pack 3), werden kompensierende Aktionen auch dann ausgeführt, wenn compensate_for_errors auf false festgelegt ist.
    ms174329.note(de-de,SQL.90).gifWichtig:
    Möglicherweise hat es zwar den Anschein, dass Daten in den betroffenen Zeilen nicht konvergent sind. Sobald Sie jedoch ggf. aufgetretene Fehler beheben, können Änderungen angewendet werden, und die Daten konvergieren. Wenn die Quelltabelle eines Artikels bereits in einer anderen Publikation veröffentlicht wurde, muss der Wert von compensate_for_errors für beide Artikel gleich sein.
  • [ @stream_blob_columns= ] 'stream_blob_columns'
    Gibt an, dass beim Replizieren von BLOB-Spalten (Binary Large Object) eine Datenstromoptimierung verwendet werden soll. stream_blob_columns ist ein Wert vom Datentyp nvarchar(5). Der Standardwert ist FALSE. true bedeutet, dass die Optimierung versucht wird.

    ms174329.note(de-de,SQL.90).gifWichtig:
    Durch Aktivieren dieser Arbeitsspeicheroptimierung kann die Leistung des Merge-Agents bei der Synchronisierung beeinträchtigt werden. Die Option sollte nur verwendet werden, wenn Spalten mit Megabytes von Daten repliziert werden.
    ms174329.note(de-de,SQL.90).gifHinweis:
    Bestimmte Funktionen der Mergereplikation, wie z. B. logische Datensätze, können selbst dann noch verhindern, dass die Datenstromoptimierung beim Replizieren von BLOB-Daten verwendet wird, wenn stream_blob_columns auf true festgelegt ist.

Rückgabecodewerte

0 (Erfolg) oder 1 (Fehler)

Hinweise

sp_addmergearticle wird bei der Mergereplikation verwendet.

Wenn Sie Objekte veröffentlichen, werden ihre Definitionen auf Abonnenten kopiert. Wenn Sie ein Datenbankobjekt veröffentlichen, das von mindestens einem anderen Objekt abhängig ist, müssen Sie alle Objekte veröffentlichen, auf die verwiesen wird. Wenn Sie z. B. eine Sicht veröffentlichen, die von einer Tabelle abhängig ist, müssen Sie auch die Tabelle veröffentlichen.

Wenn Sie den Wert 3 für partition_options angeben, kann sich im jeweiligen Artikel nur ein Abonnement für jede Datenpartition befinden. Wird ein zweites Abonnement erstellt, in dem das Filterkriterium des neuen Abonnements die gleiche Partition ergibt wie das vorhandene Abonnement, wird das vorhandene Abonnement gelöscht.

Wird für partition_options ein Wert von 3 angegeben, werden die Metadaten jedes Mal bereinigt, wenn der Merge-Agent ausgeführt wird, und der partitionierte Snapshot läuft schneller ab. Beim Verwenden dieser Option sollten Sie in Erwägung ziehen, vom Abonnenten angeforderte partitionierte Snapshots zu aktivieren. Weitere Informationen finden Sie unter Snapshots für Mergepublikationen mit parametrisierten Filtern.

Beim Hinzufügen eines Artikels mit einem statischen horizontalen Filter mithilfe von subset_filterclause zu einer vorhandenen Publikation mit Artikeln, die über parametrisierte Filter verfügen, ist es erforderlich, die Abonnements erneut zu initialisieren.

Beim Angeben von processing_order ist es empfehlenswert, zwischen den Werten für die Artikelreihenfolge Lücken zu lassen. Dies vereinfacht das Festlegen neuer Werte in der Zukunft. Wenn Sie z. B. über die drei Artikel Article1, Article2 und Article3 verfügen, legen Sie processing_order auf 10, 20 und 30 statt auf 1, 2 und 3 fest. Weitere Informationen finden Sie unter Angeben der Verarbeitungsreihenfolge von Mergeartikeln.

Tabelle der Standardschemaoptionen

In dieser Tabelle wird der Standardwert beschrieben, der von der gespeicherten Prozedur festgelegt wird, wenn ein NULL-Wert für schema_option angegeben wird. Dies ist vom Artikeltyp abhängig.

Artikeltyp Schemaoptionswert

func schema only

0x01

indexed view schema only

0x01

proc schema only

0x01

table

  • 0x0C034FD1 - SQL Server 2005-kompatible Publikationen mit einem Snapshot im systemeigenen Modus.
  • 0x08034FF1 - SQL Server 2005-kompatible Publikationen mit einem Snapshot im Zeichenmodus.
  • 0x30034FF1 - Mit SQL Server 2000 und früheren Versionen kompatible Publikationen.

view schema only

0x01

ms174329.note(de-de,SQL.90).gifHinweis:
Wenn die Publikation frühere Versionen von SQL Server unterstützt, hat die Standardschemaoption für table den Wert 0x30034FF1.

Tabelle gültiger Schemaoptionen

In der folgenden Tabelle sind die zulässigen Werte von schema_option je nach Artikeltyp beschrieben.

Artikeltyp Schemaoptionswerte

func schema only

0x01 und 0x2000

indexed view schema only

0x01, 0x040, 0x0100, 0x2000, 0x40000, 0x1000000 und 0x200000

proc schema only

0x01 und 0x2000

table

Alle Optionen

view schema only

0x01, 0x040, 0x0100, 0x2000, 0x40000, 0x1000000 und 0x200000

Berechtigungen

Erfordert die Mitgliedschaft in der festen Serverrolle sysadmin oder der festen Datenbankrolle db_owner.

Beispiel

DECLARE @publication AS sysname;
DECLARE @table1 AS sysname;
DECLARE @table2 AS sysname;
DECLARE @table3 AS sysname;
DECLARE @salesschema AS sysname;
DECLARE @hrschema AS sysname;
DECLARE @filterclause AS nvarchar(1000);
SET @publication = N'AdvWorksSalesOrdersMerge'; 
SET @table1 = N'Employee'; 
SET @table2 = N'SalesOrderHeader'; 
SET @table3 = N'SalesOrderDetail'; 
SET @salesschema = N'Sales';
SET @hrschema = N'HumanResources';
SET @filterclause = N'Employee.LoginID = HOST_NAME()';

-- Add a filtered article for the Employee table.
EXEC sp_addmergearticle 
  @publication = @publication, 
  @article = @table1, 
  @source_object = @table1, 
  @type = N'table', 
  @source_owner = @hrschema,
  @schema_option = 0x0004CF1,
  @description = N'article for the Employee table',
  @subset_filterclause = @filterclause;

-- Add an article for the SalesOrderHeader table that is filtered
-- based on Employee and horizontally filtered.
EXEC sp_addmergearticle 
  @publication = @publication, 
  @article = @table2, 
  @source_object = @table2, 
  @type = N'table', 
  @source_owner = @salesschema, 
  @vertical_partition = N'true',
  @schema_option = 0x0034EF1,
  @description = N'article for the SalesOrderDetail table';

-- Add an article for the SalesOrderDetail table that is filtered
-- based on SaledOrderHeader.
EXEC sp_addmergearticle 
  @publication = @publication, 
  @article = @table3, 
  @source_object = @table3, 
  @source_owner = @salesschema,
  @description = 'article for the SalesOrderHeader table', 
  @identityrangemanagementoption = N'auto', 
  @pub_identity_range = 100000, 
  @identity_range = 100, 
  @threshold = 80,
  @schema_option = 0x0004EF1;

-- Add all columns to the SalesOrderHeader article.
EXEC sp_mergearticlecolumn 
  @publication = @publication, 
  @article = @table2, 
  @force_invalidate_snapshot = 1, 
  @force_reinit_subscription = 1;

-- Remove the credit card Approval Code column.
EXEC sp_mergearticlecolumn 
  @publication = @publication, 
  @article = @table2, 
  @column = N'CreditCardApprovalCode', 
  @operation = N'drop', 
  @force_invalidate_snapshot = 1, 
  @force_reinit_subscription = 1;

-- Add a merge join filter between Employee and SalesOrderHeader.
EXEC sp_addmergefilter 
  @publication = @publication, 
  @article = @table2, 
  @filtername = N'SalesOrderHeader_Employee', 
  @join_articlename = @table1, 
  @join_filterclause = N'Employee.EmployeeID = SalesOrderHeader.SalesPersonID', 
  @join_unique_key = 1, 
  @filter_type = 1, 
  @force_invalidate_snapshot = 1, 
  @force_reinit_subscription = 1;

-- Add a merge join filter between SalesOrderHeader and SalesOrderDetail.
EXEC sp_addmergefilter 
  @publication = @publication, 
  @article = @table3, 
  @filtername = N'SalesOrderDetail_SalesOrderHeader', 
  @join_articlename = @table2, 
  @join_filterclause = N'SalesOrderHeader.SalesOrderID = SalesOrderDetail.SalesOrderID', 
  @join_unique_key = 1, 
  @filter_type = 1, 
  @force_invalidate_snapshot = 1, 
  @force_reinit_subscription = 1;
GO

Siehe auch

Verweis

sp_changemergearticle (Transact-SQL)
sp_dropmergearticle (Transact-SQL)
sp_helpmergearticle (Transact-SQL)
Gespeicherte Replikationsprozeduren (Transact-SQL)

Andere Ressourcen

How to: Define an Article (Replication Transact-SQL Programming)
Veröffentlichen von Daten und Datenbankobjekten
Replizieren von Identitätsspalten
Konflikterkennung und -lösung bei der Mergereplikation

Hilfe und Informationen

Informationsquellen für SQL Server 2005

Änderungsverlauf

Version Verlauf

14. April 2006

Geänderter Inhalt:
  • Die Beschreibung des Wertes 0x20000000 des Parameters schema_option wurde aktualisiert.

05. Dezember 2005

Neuer Inhalt:
  • Documented additional restrictions when setting the 0x20 option for the schema_option parameter.
  • Documented column restrictions on published tables.
Geänderter Inhalt:
  • Updated information on the default schema option value for table articles.