Share via


sp_changearticle (Transact-SQL)

Aktualisiert: 14. April 2006

Ändert die Eigenschaften eines Artikels in einer Transaktions- oder Snapshotpublikation. Diese gespeicherte Prozedur wird beim Verleger mit der Publikationsdatenbank ausgeführt.

Themenlink (Symbol)Transact-SQL-Syntaxkonventionen

Syntax

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

Argumente

  • [ @publication=] 'publication'
    Der Name der Publikation, die den Artikel enthält. publication ist ein Wert vom Datentyp sysname. Der Standardwert ist NULL.
  • [ @article=] 'article'
    Der Name des Artikels, dessen Eigenschaft geändert werden soll. article ist ein Wert vom Datentyp sysname. Der Standardwert ist NULL.
  • [ @property=] 'property'
    Die zu ändernde Artikeleigenschaft. property ist ein Wert vom Datentyp nvarchar(100).
  • [ @value=] 'value'
    Der neue Wert der Artikeleigenschaft. value ist vom Datentyp nvarchar(255).

    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.

    Der Wert 0 gibt an, dass Änderungen an dem Artikel nicht bewirken, dass der Snapshot ungültig wird. Wenn die gespeicherte Prozedur erkennt, dass die Änderungen einen neuen Snapshot erfordern, tritt ein Fehler auf, und es werden keine Änderungen durchgeführt.

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

    Weitere Informationen zu den Eigenschaften, deren Änderung zur Folge hat, dass ein neuer Snapshot erstellt werden muss, finden Sie im Abschnitt zu den 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 vom Datentyp bit. Der Standardwert ist 0.

    Der Wert 0 gibt an, dass Änderungen an dem Artikel nicht bewirken, dass das Abonnement neu initialisiert wird. 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 Änderungen am Artikel die erneute Initialisierung vorhandener Abonnements bewirken. Außerdem wird mit diesem Wert die Berechtigung zur erneuten Initialisierung des Abonnements erteilt.

    Weitere Informationen zu den Eigenschaften, deren Änderung zur Folge hat, dass alle vorhandenen Abonnements neu initialisiert werden müssen, finden Sie im Abschnitt zu den Hinweisen.

  • [ @publisher= ] 'publisher'
    Gibt einen Nicht-SQL Server-Verleger an. publisher ist ein Wert vom Datentyp sysname und besitzt den Standardwert NULL.

    ms175980.note(de-de,SQL.90).gifHinweis:
    publisher sollte nicht beim Ändern von Artikeleigenschaften für einen SQL Server-Verleger verwendet werden.

Rückgabecodewerte

0 (Erfolg) oder 1 (Fehler)

Hinweise

sp_changearticle wird bei der Snapshot- und Transaktionsreplikation verwendet.

Wenn ein Artikel zu einer Publikation gehört, die die Peer-to-Peer-Transaktionsreplikation unterstützt, können Sie nur die Eigenschaften von description, ins_cmd, upd_cmd und del_cmd ändern.

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

  • del_cmd
  • dest_table
  • destination_owner
  • ins_cmd
  • pre_creation_cmd
  • schema_options
  • upd_cmd

Für das Ändern einer der folgenden Eigenschaften müssen vorhandene Abonnements neu initialisiert werden. Außerdem müssen Sie den Wert 1 für den force_reinit_subscription-Parameter angeben.

  • del_cmd
  • dest_table
  • destination_owner
  • Filter
  • ins_cmd
  • status
  • upd_cmd

Innerhalb einer vorhandenen Publikation können Sie mithilfe von sp_changearticle einen Artikel ändern, ohne die gesamte Publikation löschen und erneut erstellen zu müssen.

ms175980.note(de-de,SQL.90).gifHinweis:
Bei einer Änderung des Wertes von schema_option führt das System kein bitweises Update aus. Das bedeutet, dass beim Festlegen von schema_option mit sp_changearticle möglicherweise vorhandene Biteinstellungen 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_helparticle bestimmt werden.

Gültige Schemaoptionen

In der folgenden Tabelle werden die zulässigen Werte von schema_option beschrieben, die auf dem Replikationstyp basieren, der oben angezeigt wird, sowie auf dem Artikeltyp, der in der ersten Spalte angezeigt wird.

Artikeltyp Replikationstyp  

 

Transaktion

Snapshot

logbased

Alle Optionen

Alle Optionen außer 0x02

logbased manualfilter

Alle Optionen

Alle Optionen außer 0x02

logbased manualview

Alle Optionen

Alle Optionen außer 0x02

indexed view logbased

Alle Optionen

Alle Optionen außer 0x02

indexed view logbased manualfilter

Alle Optionen

Alle Optionen außer 0x02

indexed view logbased manualview

Alle Optionen

Alle Optionen außer 0x02

indexed view logbase manualboth

Alle Optionen

Alle Optionen außer 0x02

proc exec

0x01, 0x20, 0x2000, 0x400000, 0x800000, 0x2000000, 0x8000000, 0x10000000, 0x20000000, 0x40000000 und 0x80000000

0x01, 0x20, 0x2000, 0x400000, 0x800000, 0x2000000, 0x8000000, 0x10000000, 0x20000000, 0x40000000 und 0x80000000

serialized proc exec

0x01, 0x20, 0x2000, 0x400000, 0x800000, 0x2000000, 0x8000000, 0x10000000, 0x20000000, 0x40000000 und 0x80000000

0x01, 0x20, 0x2000, 0x400000, 0x800000, 0x2000000, 0x8000000, 0x10000000, 0x20000000, 0x40000000 und 0x80000000

proc schema only

0x01, 0x20, 0x2000, 0x400000, 0x800000, 0x2000000, 0x8000000, 0x10000000, 0x20000000, 0x40000000 und 0x80000000

0x01, 0x20, 0x2000, 0x400000, 0x800000, 0x2000000, 0x8000000, 0x10000000, 0x20000000, 0x40000000 und 0x80000000

view schema only

0x01, 0x010, 0x020, 0x040, 0x0100, 0x2000, 0x40000, 0x100000, 0x200000, 0x400000, 0x800000, 0x2000000, 0x8000000, 0x40000000 und 0x80000000

0x01, 0x010, 0x020, 0x040, 0x0100, 0x2000, 0x40000, 0x100000, 0x200000, 0x400000, 0x800000, 0x2000000, 0x8000000, 0x40000000 und 0x80000000

func schema only

0x01, 0x20, 0x2000, 0x400000, 0x800000, 0x2000000, 0x8000000, 0x10000000, 0x20000000, 0x40000000 und 0x80000000

0x01, 0x20, 0x2000, 0x400000, 0x800000, 0x2000000, 0x8000000, 0x10000000, 0x20000000, 0x40000000 und 0x80000000

indexed view schema only

0x01, 0x010, 0x020, 0x040, 0x0100, 0x2000, 0x40000, 0x100000, 0x200000, 0x400000, 0x800000, 0x2000000, 0x8000000, 0x40000000 und 0x80000000

0x01, 0x010, 0x020, 0x040, 0x0100, 0x2000, 0x40000, 0x100000, 0x200000, 0x400000, 0x800000, 0x2000000, 0x8000000, 0x40000000 und 0x80000000

ms175980.note(de-de,SQL.90).gifHinweis:
Für Publikationen mit verzögerter Aktualisierung über eine Warteschlange muss für schema_option der Wert 0x80 aktiviert werden. Die unterstützten schema_option-Werte für Nicht-SQL Server-Publikationen sind: 0x01, 0x02, 0x10, 0x40, 0x80, 0x1000 und 0x4000.

Berechtigungen

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

Beispiel

DECLARE @publication AS sysname;
DECLARE @article AS sysname;
DECLARE @option AS int;
SET @publication = N'AdvWorksProductTran';
SET @article = N'Product';
SET @option = (SELECT CAST(0x0000000002030073 AS int));

-- Change the schema options to replicate schema with XML.
USE [AdventureWorks]
EXEC sp_changearticle 
  @publication = @publication,
  @article = @article, 
  @property = N'schema_option', 
  @value = @option,
  @force_invalidate_snapshot = 1;
GO

Siehe auch

Verweis

sp_addarticle (Transact-SQL)
sp_articlecolumn (Transact-SQL)
sp_droparticle (Transact-SQL)
sp_helparticle (Transact-SQL)
sp_helparticlecolumns (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:
  • Fehlende Werte für die type-Eigenschaft wurden hinzugefügt.
  • Zusätzliche Einschränkungen beim Festlegen der Option 0x20 für den schema_option-Parameter wurden dokumentiert.
Geänderter Inhalt:
  • Beschreibungen für die type-Eigenschaft wurden verdeutlicht.
  • Die Größe des property-Parameters wurde korrigiert.