Freigeben über


sp_changemergearticle (Transact-SQL)

Ändert die Eigenschaften eines Mergeartikels. Diese gespeicherte Prozedur wird auf dem Verleger für die Veröffentlichungsdatenbank ausgeführt.

Themenlink (Symbol)Transact-SQL-Syntaxkonventionen

Syntax

sp_changemergearticle [ @publication = ] 'publication'
        , [ @article = ] 'article'
    [ , [ @property = ] 'property' ]
    [ , [ @value = ] 'value' ]
    [ , [ @force_invalidate_snapshot = ] force_invalidate_snapshot ]
    [ , [ @force_reinit_subscription = ] force_reinit_subscription ]

Argumente

  • [ @publication=] 'publication'
    Der Name der Veröffentlichung, in der der Artikel vorhanden ist. publication ist vom Datentyp sysname und weist keinen Standardwert auf.

  • [ @article=] 'article'
    Der Name des Artikels, der geändert werden soll. article ist ein Wert vom Datentyp sysname und weist keinen Standardwert auf.

  • [ @property=] 'property'
    Die Eigenschaft, die für den angegebenen Artikel und die angegebene Veröffentlichung geändert werden soll. property ist ein Wert vom Datentyp nvarchar(30). Die in der Tabelle aufgeführten Werte sind möglich.

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

    Diese Tabelle beschreibt die Eigenschaften von Artikeln und die Werte für diese Eigenschaften.

    Eigenschaft

    Werte

    Beschreibung

    allow_interactive_resolver

    true

    Aktiviert die Verwendung eines interaktiven Konfliktlösers für den Artikel.

     

    false

    Deaktiviert die Verwendung eines interaktiven Konfliktlösers für den Artikel.

    article_resolver

     

    Benutzerdefinierter Konfliktlöser für den Artikel. Gilt nur für einen Tabellenartikel.

    check_permissions (bitmap)

    0x00

    Berechtigungen auf Tabellenebene werden nicht überprüft.

     

    0x10

    Berechtigungen auf Tabellenebene werden beim Verleger überprüft, bevor beim Abonnenten ausgeführte INSERT-Anweisungen auf den Verleger angewendet werden.

     

    0x20

    Berechtigungen auf Tabellenebene werden beim Verleger überprüft, bevor beim Abonnenten ausgeführte UPDATE-Anweisungen auf den Verleger angewendet werden.

     

    0x40

    Berechtigungen auf Tabellenebene werden beim Verleger überprüft, bevor DELETE-Anweisungen beim Abonnenten auf den Verleger angewendet werden.

    column_tracking

    true

    Aktiviert die Protokollierung auf Spaltenebene. Gilt nur für einen Tabellenartikel.

    HinweisHinweis
    Nachverfolgung auf Spaltenebene kann nicht verwendet werden, wenn Tabellen mit mehr als 246 Spalten veröffentlicht werden.

     

    false

    Deaktiviert die Protokollierung auf Spaltenebene und belässt die Konflikterkennung auf der Zeilenebene. Gilt nur für einen Tabellenartikel.

    compensate_for_errors

    true

    Wenn bei der Synchronisierung Fehler auftreten, werden kompensierende Aktionen ausgeführt. Weitere Informationen finden Sie unter sp_addmergearticle.

     

    false

    Es werden keine kompensierenden Aktionen ausgeführt. Dies ist das Standardverhalten. Weitere Informationen finden Sie unter sp_addmergearticle.

    Wichtiger HinweisWichtig
    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 die Änderungen angewendet werden, und die Daten konvergieren. Wenn die Quelltabelle eines Artikels bereits in einer anderen Veröffentlichung veröffentlicht wurde, muss der Wert von compensate_for_errors für beide Artikel gleich sein.

    creation_script

     

    Pfad und Name eines optionalen Artikelschemaskripts, mit dem der Artikel in der Abonnementdatenbank erstellt wurde.

    delete_tracking

    true

    DELETE-Anweisungen werden repliziert. Dies ist das Standardverhalten.

     

    false

    DELETE-Anweisungen werden nicht repliziert.

    Wichtiger HinweisWichtig
    Wird delete_tracking auf false festgelegt, führt dies zur Nichtkonvergenz, und gelöschte Zeilen müssen manuell entfernt werden.

    description

     

    Beschreibungseintrag für den Artikel.

    destination_owner

     

    Der Name des Besitzers des Objekts in der Abonnementdatenbank, wenn dies nicht dbo ist.

    identity_range

     

    Ein Wert vom Datentyp bigint, der die beim Zuweisen neuer Identitätswerte zu verwendende Bereichsgröße angibt, wenn für den Artikel identityrangemanagementoption auf auto oder auto_identity_range auf true festgelegt ist. Gilt nur für einen Tabellenartikel. Weitere Informationen finden Sie im Abschnitt zur Mergereplikation unter Replizieren von Identitätsspalten.

    identityrangemanagementoption

    manual

    Deaktiviert die automatische Verwaltung des Identitätsbereichs. Kennzeichnet Identitätsspalten mithilfe von NOT FOR REPLICATION, um die manuelle Handhabung des Identitätsbereichs zu aktivieren. Weitere Informationen finden Sie unter Replizieren von Identitätsspalten.

     

    none

    Deaktiviert die gesamte Verwaltung des Identitätsbereichs.

    logical_record_level_conflict_detection

    true

    Ein Konflikt wird erkannt, wenn an einer beliebigen Stelle im logischen Datensatz Änderungen vorgenommen werden. Hierfür muss logical_record_level_conflict_resolution auf true festgelegt sein.

     

    false

    Die Standardkonflikterkennung wird wie durch column_tracking angegeben verwendet.

    logical_record_level_conflict_resolution

    true

    Der gesamte gewinnende logische Datensatz überschreibt den verlierenden logischen Datensatz.

     

    false

    Die Gewinnerzeilen sind nicht auf den logischen Datensatz eingeschränkt.

    partition_options

    0

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

     

    1

    Die Partitionen überlappen, und beim Abonnenten vorgenommene DML-Updates 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.

    HinweisHinweis
    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.

    pre_creation_command

    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

    Löscht die Tabelle, bevor sie neu erstellt wird.

     

    truncate

    Schneidet die Zieltabelle ab.

    processing_order

     

    Ein Wert vom Datentyp int, der die Verarbeitungsreihenfolge von Artikeln in einer Mergeveröffentlichung angibt.

    pub_identity_range

     

    Ein Wert vom Datentyp bigint, der die einem Abonnenten mit einem Serverabonnement zugeordnete Bereichsgröße angibt, wenn für den Artikel identityrangemanagementoption auf auto oder auto_identity_range auf true festgelegt ist. Dieser Identitätsbereich ist für einen Wiederveröffentlichungsabonnenten für die Zuordnung zu dessen Abonnenten reserviert. Gilt nur für einen Tabellenartikel. Weitere Informationen finden Sie im Abschnitt zur Mergereplikation unter Replizieren von Identitätsspalten.

    published_in_tran_pub

    true

    Der Artikel wird zusätzlich in einer Transaktionsveröffentlichung veröffentlicht.

     

    false

    Der Artikel wird nicht zusätzlich in einer Transaktionsveröffentlichung veröffentlicht.

    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.

    schema_option (bitmap)

    Weitere Informationen finden Sie im Abschnitt mit den Hinweisen weiter unten in diesem Thema.

     

    0x00

    Deaktiviert die Skripterstellung durch den Momentaufnahme-Agent und verwendet das in creation_script bereitgestellte Skript.

     

    0x01

    Generiert das Objekterstellungsskript (CREATE TABLE, CREATE PROCEDURE usw.).

     

    0x10

    Generiert einen entsprechenden gruppierten Index.

     

    0x20

    Konvertiert benutzerdefinierte Datentypen auf dem Abonnenten in Basisdatentypen. Die Option kann nicht verwendet werden, wenn eine CHECK- oder DEFAULT-Einschränkung für eine Spalte von einem benutzerdefinierten Typ ( User-defined Type, UDT) vorhanden ist, wenn eine UDT-Spalte Teil des Primärschlüssels ist oder wenn eine berechnete Spalte auf eine UDT-Spalte verweist.

     

    0x40

    Generiert entsprechende nicht gruppierte Indizes.

     

    0x80

    Schließt die deklarative referenzielle Integrität für die Primärschlüssel ein.

     

    0x100

    Repliziert Benutzertrigger für einen Tabellenartikel, wenn definiert.

     

    0x200

    Repliziert FOREIGN KEY-Einschränkungen. Wenn die Tabelle, auf die verwiesen wird, nicht Teil einer Veröffentlichung ist, werden für eine veröffentlichte Tabelle keine FOREIGN KEY-Einschränkungen repliziert.

     

    0x400

    Repliziert CHECK-Einschränkungen.

     

    0x800

    Repliziert Standards.

     

    0x1000

    Repliziert die Sortierung auf Spaltenebene.

     

    0x2000

    Repliziert erweiterte Eigenschaften, die dem Quellobjekt des veröffentlichten Artikels zugeordnet sind.

     

    0x4000

    Repliziert eindeutige Schlüssel, wenn auf einem Tabellenartikel definiert.

     

    0x8000

    Generiert ALTER TABLE-Anweisungen beim Erstellen von Skripts mit Einschränkungen.

     

    0x10000

    Repliziert CHECK-Einschränkungen als NOT FOR REPLICATION, sodass die Einschränkungen während der Synchronisierung nicht erzwungen werden.

     

    0x20000

    Repliziert FOREIGN KEY-Einschränkungen als NOT FOR REPLICATION, sodass diese Einschränkungen bei der Synchronisierung nicht erzwungen werden.

     

    0x40000

    Repliziert Dateigruppen, die mit einer partitionierten Tabelle oder einem Index verbunden sind.

     

    0x80000

    Repliziert das Partitionsschema für eine partitionierte Tabelle.

     

    0x100000

    Repliziert das Partitionsschema für einen partitionierten Index.

     

    0x200000

    Repliziert Tabellenstatistiken.

     

    0x400000

    Repliziert Standardbindungen.

     

    0x800000

    Repliziert Regelbindungen.

     

    0x1000000

    Repliziert den Volltextindex.

     

    0x2000000

    XML-Schemaauflistungen, die an xml-Spalten gebunden sind, werden nicht repliziert.

     

    0x4000000

    Repliziert Indizes für xml-Spalten.

     

    0x8000000

    Legt Schemas an, die auf dem Abonnent noch nicht vorhanden sind.

     

    0x10000000

    Konvertiert xml-Spalten auf dem Abonnenten in ntext.

     

    0x20000000

    Konvertiert in SQL Server 2005 eingeführte LOB-Datentypen (Large Object) (nvarchar(max), varchar(max) und varbinary(max)) in Datentypen, die in SQL Server 2000 unterstützt werden. Informationen zum Zuordnen dieser Typen finden Sie im Abschnitt über die Zuordnung neuer Datentypen für frühere Versionen unter Verwenden mehrerer Versionen von SQL Server in einer Replikationstopologie.

     

    0x40000000

    Berechtigungen für die Replikation.

     

    0x80000000

    Der Versuch, Abhängigkeiten für Objekte zu löschen, die nicht Teil der Veröffentlichung sind.

    0x100000000

    Verwenden Sie diese Option, um das FILESTREAM-Attribut zu replizieren, wenn es für varbinary(max)-Spalten angegeben wird. Geben Sie diese Option nicht an, wenn Sie Tabellen auf SQL Server 2005-Abonnenten replizieren. Das Replizieren von Tabellen mit FILESTREAM-Spalten auf SQL Server 2000-Abonnenten wird unabhängig von der Festlegung dieser Schemaoption nicht unterstützt. Siehe die verwandte Option 0x800000000.

    0x200000000

    Konvertiert in SQL Server 2008 eingeführte Datums- und Zeitdatentypen (date, time, datetimeoffset und datetime2) in Datentypen, die in früheren Versionen von SQL Server unterstützt werden. Informationen zum Zuordnen dieser Typen finden Sie im Abschnitt "Zuordnen von neuen Datentypen für frühere Versionen" unter Verwenden mehrerer Versionen von SQL Server in einer Replikationstopologie.

    0x400000000

    Repliziert die Komprimierungsoption für Daten und Indizes. Weitere Informationen finden Sie unter Erstellen komprimierter Tabellen und Indizes.

    0x800000000

    Legen Sie diese Option fest, um FILESTREAM-Daten in einer eigenen Dateigruppe auf dem Abonnenten zu speichern. Wenn diese Option nicht festgelegt wird, werden FILESTREAM-Daten in der Standarddateigruppe gespeichert. Bei der Replikation werden keine Dateigruppen erstellt. Daher müssen Sie beim Festlegen dieser Option die Dateigruppe erstellen, bevor Sie die Momentaufnahme auf dem Abonnenten anwenden. Weitere Informationen zum Erstellen von Objekten vor dem Anwenden der Momentaufnahme finden Sie unter Ausführen von Skripts vor und nach dem Anwenden des Snapshots.

    Siehe die verwandte Option 0x100000000.

    0x1000000000

    Konvertiert CLR-benutzerdefinierte Typen (Common Language Runtime User-Defined Type, CLR UDT) in varbinary(max), sodass Spalten vom Typ UDT auf Abonnenten repliziert werden können, auf denen SQL Server 2005 ausgeführt wird.

    0x2000000000

    Konvertiert den hierarchyid-Datentyp in varbinary(max), sodass Spalten vom Typ hierarchyid auf Abonnenten repliziert werden können, auf denen SQL Server 2005 ausgeführt wird. Weitere Informationen zum Verwenden von hierarchyid-Spalten in replizierten Tabellen finden Sie unter hierarchyid (Transact-SQL).

    0x4000000000

    Repliziert die gefilterten Indizes in der Tabelle. Weitere Informationen zu gefilterten Indizes finden Sie unter Richtlinien für den Entwurf gefilterter Indizes.

     

    0x8000000000

    Konvertiert den geography-Datentyp und den geometry-Datentyp in varbinary(max), sodass Spalten dieser Typen auf Abonnenten repliziert werden können, auf denen SQL Server 2005 ausgeführt wird.

     

    0x10000000000

    Repliziert Indizes für Spalten vom Typ geography und geometry.

     

    NULL

    Das System generiert automatisch eine gültige Schemaoption für den Artikel.

    status

    active

    Das Anfangsverarbeitungsskript zur Veröffentlichung der Tabelle wird ausgeführt.

     

    unsynced

    Das Anfangsverarbeitungsskript zum Veröffentlichen der Tabelle wird ausgeführt, wenn der Momentaufnahme-Agent das nächste Mal ausgeführt wird.

    stream_blob_columns

    true

    Beim Replizieren von BLOB-Spalten (Binary Large Object) wird eine Datenstromoptimierung verwendet. Bestimmte Funktionalitäten der Mergereplikation, z. B. logische Datensätze, können jedoch weiterhin verhindern, dass die Datenstromoptimierung verwendet wird. stream_blob_columns ist auf TRUE festgelegt, wenn FILESTREAM aktiviert ist. So kann die Replikation von FILESTREAM-Daten optimal und bei verringerter Arbeitsspeichernutzung ausgeführt werden. Legen Sie stream_blob_columns auf false fest, um zu erzwingen, dass FILESTREAM-Tabellenartikel kein BLOB-Streaming verwenden.

    Wichtiger HinweisWichtig
    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.

     

    false

    Beim Replizieren von BLOB-Spalten (Binary Large Object) wird die Optimierung nicht verwendet.

    subscriber_upload_options

    0

    Keine Einschränkungen für Updates, die bei einem Abonnenten mit einem Clientabonnement vorgenommen werden. Änderungen werden auf den Verleger hochgeladen. Für das Ändern dieser Eigenschaft ist möglicherweise eine erneute Initialisierung von vorhandenen Abonnenten erforderlich.

     

    1

    Änderungen sind bei einem Abonnenten mit einem Clientabonnement zulässig, werden jedoch nicht auf den Verleger hochgeladen.

     

    2

    Änderungen sind bei einem Abonnenten mit einem Clientabonnement nicht zulässig.

    subset_filterclause

     

    WHERE-Klausel für das horizontale Filtern. Gilt nur für einen Tabellenartikel.

    Wichtiger HinweisWichtig
    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()-Werts unter Parametrisierte Zeilenfilter.

    threshold

     

    Ein Prozentwert, der für Abonnenten verwendet wird, die SQL Server Compact 3.5 SP2 oder frühere Versionen von SQL Server ausführen. threshold steuert, wann der Merge-Agent einen neuen Identitätsbereich zuweist. Wenn der im Schwellwert angegebene Prozentsatz verwendet wird, erstellt der Merge-Agent einen neuen Identitätsbereich. Wird verwendet, wenn identityrangemanagementoption auf auto oder auto_identity_range auf true festgelegt ist. Gilt nur für einen Tabellenartikel. Weitere Informationen finden Sie im Abschnitt zur Mergereplikation unter Replizieren von Identitätsspalten.

    verify_resolver_signature

    1

    Die digitale Signatur in einem benutzerdefinierten Konfliktlöser wird überprüft, um festzustellen, ob er aus einer vertrauenswürdigen Quelle stammt.

     

    0

    Die digitale Signatur in einem benutzerdefinierten Konfliktlöser wird nicht überprüft, um festzustellen, ob er aus einer vertrauenswürdigen Quelle stammt.

    NULL (Standard)

     

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

  • [ @force_invalidate_snapshot = ] force_invalidate_snapshot
    Bestätigt, dass die von dieser gespeicherten Prozedur ausgeführte Aktion eine vorhandene Momentaufnahme 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 die Momentaufnahme nicht durch Änderungen am Mergeartikel ungültig werden kann. Wenn die gespeicherte Prozedur erkennt, dass die Änderung eine neue Momentaufnahme erfordert, tritt ein Fehler auf, und es werden keine Änderungen durchgeführt.

    Der Wert 1 gibt an, dass die Momentaufnahme durch Ändern des Mergeartikels ungültig werden kann. Wenn Abonnements vorhanden sind, die eine neue Momentaufnahme erfordern, wird mit diesem Wert die Berechtigung erteilt, die vorhandene Momentaufnahme als veraltet zu markieren und eine neue Momentaufnahme zu generieren.

    Weitere Informationen zu den Eigenschaften, bei deren Änderung die Generierung einer neuen Momentaufnahme erforderlich ist, finden Sie im Abschnitt "Hinweise".

  • [ @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 Änderungen am Mergeartikel 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.

    Der Wert 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.

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

Rückgabecodewerte

0 (Erfolg) oder 1 (Fehler)

Hinweise

sp_changemergearticle wird für die Mergereplikation verwendet.

Da sp_changemergearticle zum Ändern von Artikeleigenschaften verwendet wird, die anfangs mithilfe von sp_addmergearticle angegeben wurden, finden Sie weitere Informationen zu diesen Eigenschaften unter sp_addmergearticle.

Das Ändern der folgenden Eigenschaften erfordert die Generierung einer neuen Momentaufnahme, und Sie müssen für den force_invalidate_snapshot-Parameter den Wert 1 angeben:

  • check_permissions

  • column_tracking

  • destination_owner

  • pre_creation_cmd

  • schema_options

  • subset_filterclause

Das Ändern der folgenden Eigenschaften erfordert die erneute Initialisierung vorhandener Abonnements, und Sie müssen für den force_reinit_subscription-Parameter den Wert 1 angeben:

  • check_permissions

  • column_tracking

  • destination_owner

  • subscriber_upload_options

  • subset_filterclause

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

Wenn die Tabelle bereits in anderen Mergereplikationen veröffentlicht wird, muss die Spaltenprotokollierung beim Festlegen der column_tracking-Eigenschaft denselben Wert verwenden, der von den vorhandenen Artikeln für diese Tabelle verwendet wird. Dieser Parameter ist nur für Tabellenartikel spezifisch.

Wenn mehrere Veröffentlichungen Artikel veröffentlichen, die auf der gleichen zugrunde liegenden Tabelle basieren, bewirkt das Ändern der delete_tracking-Eigenschaft oder der compensate_for_errors-Eigenschaft für einen Artikel, dass die gleiche Änderung an den anderen Artikeln vorgenommen wird, die auf der gleichen Tabelle basieren.

Wenn der vom Mergeprozess verwendete Benutzername bzw. das Benutzerkonto auf dem Verleger nicht über die entsprechenden Tabellenberechtigungen verfügt, werden die ungültigen Änderungen als Konflikte protokolliert.

Beim Ändern des Werts von schema_option führt das System keine bitweise Aktualisierung aus. Dies bedeutet, dass beim Festlegen von schema_option mithilfe von sp_changemergearticle vorhandene Biteinstellungen möglicherweise deaktiviert werden. Um die vorhandenen Einstellungen beizubehalten, sollten Sie & (Bitweises AND) zwischen dem festzulegenden Wert und dem aktuellen Wert von schema_option ausführen. Dieser kann durch Ausführen von sp_helpmergearticle bestimmt werden.

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

Beispiel

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

-- Enable column-level conflict tracking.
-- Changing this property requires that existing subscriptions
-- be reinitialized and that a new snapshot be generated.
USE [AdventureWorks2008R2]
EXEC sp_changemergearticle 
  @publication = @publication,
  @article = @article, 
  @property = N'column_tracking', 
  @value = N'true',
  @force_invalidate_snapshot = 1,
  @force_reinit_subscription = 1;
GO

Berechtigungen

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