sp_changemergearticle (Transact-SQL)

Aktualisiert: 14. April 2006

Ändert die Eigenschaften eines Mergeartikels. Diese gespeicherte Prozedur wird beim Verleger mit der Publikationsdatenbank 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 Publikation, 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 Publikation 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

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

    Der Wert 1 gibt an, dass der Snapshot durch Ändern des Mergeartikels 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.

    Weitere Informationen zu den Eigenschaften, bei deren Änderung die Generierung eines neuen Snapshots erforderlich ist, finden Sie im Abschnitt mit Hinweisen.

  • [ @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 eines neuen Snapshots, 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 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.

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 Publikationen 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 Wertes 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_optionje 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

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

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 [AdventureWorks]
EXEC sp_changemergearticle 
  @publication = @publication,
  @article = @article, 
  @property = N'column_tracking', 
  @value = N'true',
  @force_invalidate_snapshot = 1,
  @force_reinit_subscription = 1;
GO

Siehe auch

Verweis

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

Andere Ressourcen

How to: View and Modify Article Properties (Replication Transact-SQL Programming)
Ändern von Publikations- und Artikeleigenschaften

Hilfe und Informationen

Informationsquellen für SQL Server 2005

Änderungsverlauf

Version Verlauf

14. April 2006

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

05. Dezember 2005

Neuer Inhalt:
  • Weitere Einschränkungen beim Festlegen der Option 0x20 für den schema_option-Parameter wurden dokumentiert.
Geänderter Inhalt:
  • Updated information on the default schema option value for table articles.