sp_addarticle (Transact-SQL)

Erstellt einen Artikel und fügt ihn zu einer Veröffentlichung hinzu. Diese gespeicherte Prozedur wird auf dem Verleger mit der Veröffentlichungsdatenbank ausgeführt.

Themenlink (Symbol)Transact-SQL-Syntaxkonventionen

Syntax

sp_addarticle [ @publication = ] 'publication' 
        , [ @article = ] 'article' 
    [ , [ @source_table = ] 'source_table' ]
    [ , [ @destination_table = ] 'destination_table' ] 
    [ , [ @vertical_partition = ] 'vertical_partition' ] 
    [ , [ @type = ] 'type' ] 
    [ , [ @filter = ] 'filter' ] 
    [ , [ @sync_object= ] 'sync_object' ] 
        [ , [ @ins_cmd = ] 'ins_cmd' ] 
    [ , [ @del_cmd = ] 'del_cmd' ] 
        [ , [ @upd_cmd = ] 'upd_cmd' ] 
    [ , [ @creation_script = ] 'creation_script' ] 
    [ , [ @description = ] 'description' ] 
    [ , [ @pre_creation_cmd = ] 'pre_creation_cmd' ] 
    [ , [ @filter_clause = ] 'filter_clause' ] 
    [ , [ @schema_option = ] schema_option ] 
    [ , [ @destination_owner = ] 'destination_owner' ] 
    [ , [ @status = ] status ] 
    [ , [ @source_owner = ] 'source_owner' ] 
    [ , [ @sync_object_owner = ] 'sync_object_owner' ] 
    [ , [ @filter_owner = ] 'filter_owner' ] 
    [ , [ @source_object = ] 'source_object' ] 
    [ , [ @artid = ] article_ID  OUTPUT ] 
    [ , [ @auto_identity_range = ] 'auto_identity_range' ] 
    [ , [ @pub_identity_range = ] pub_identity_range ] 
    [ , [ @identity_range = ] identity_range ] 
    [ , [ @threshold = ] threshold ] 
    [ , [ @force_invalidate_snapshot = ] force_invalidate_snapshot ]
    [ , [ @use_default_datatypes = ] use_default_datatypes
    [ , [ @identityrangemanagementoption = ] identityrangemanagementoption ]
    [ , [ @publisher = ] 'publisher' ]
    [ , [ @fire_triggers_on_snapshot = ] 'fire_triggers_on_snapshot' ] 

Argumente

  • [ @publication = ] 'publication'
    Der Name der Veröffentlichung, die den Artikel enthält. Der Name muss innerhalb der Datenbank eindeutig sein. publication ist ein Wert vom Datentyp sysname und weist keinen Standardwert auf.

  • [ @article = ] 'article'
    Der Name des Artikels. Der Name muss innerhalb der Veröffentlichung eindeutig sein. article ist ein Wert vom Datentyp sysname und weist keinen Standardwert auf.

  • [ @source_table = ] 'source_table'
    Dieser Parameter ist veraltet; verwenden Sie stattdessen source_object.

    Dieser Parameter wird nur zwecks Abwärtskompatibilität mit SQL Server 6.5 unterstützt. Der Parameter wird von Oracle-Verlegern nicht unterstützt.

  • [ @destination_table = ] 'destination_table'
    Der Name der Zieltabelle (Abonnementtabelle), falls er von source_tableoder der gespeicherten Prozedur abweicht. destination_table ist ein Wert vom Datentyp sysname. Der Standardwert ist NULL. Dies bedeutet, dass source_table mit destination_tableidentisch ist.

  • [ @vertical_partition = ] 'vertical_partition'
    Aktiviert und deaktiviert die Spaltenfilterung für einen Tabellenartikel. vertical_partition ist ein Wert vom Datentyp nchar(5). Der Standardwert ist FALSE.

    false gibt an, dass keine vertikale Filterung aktiviert ist und veröffentlicht alle Spalten.

    Bei true werden alle Spalten außer dem deklarierten Primärschlüssel, Spalten ohne Standardwerte, die NULL zulassen, sowie Spalten für eindeutige Schlüssel gelöscht. Spalten werden mithilfe von sp_articlecolumn hinzugefügt.

  • [ @type = ] 'type'
    Der Artikeltyp. type ist ein Wert vom Datentyp sysname. Die folgenden Werte sind möglich.

    Wert

    Beschreibung

    aggregate schema only

    Aggregatfunktion vom Typ schema only.

    func schema only

    Funktion vom Typ schema only.

    indexed view logbased

    Artikel für protokollbasierte indizierte Sicht. Wird von Oracle-Verlegern nicht unterstützt. Für diesen Artikeltyp muss die Basistabelle nicht separat veröffentlicht werden.

    indexed view logbased manualboth

    Artikel für protokollbasierte indizierte Sicht mit manuell erstelltem Filter und manuell erstellter Sicht. Diese Option setzt voraus, dass die sync_object- und filter-Parameter angegeben werden. Für diesen Artikeltyp muss die Basistabelle nicht separat veröffentlicht werden. Wird von Oracle-Verlegern nicht unterstützt.

    indexed view logbased manualfilter

    Artikel für protokollbasierte indizierte Sicht mit manuell erstelltem Filter. Diese Option setzt voraus, dass die sync_object- und filter-Parameter angegeben werden. Für diesen Artikeltyp muss die Basistabelle nicht separat veröffentlicht werden. Wird von Oracle-Verlegern nicht unterstützt.

    indexed view logbased manualview

    Artikel für protokollbasierte indizierte Sicht mit manuell erstellter Sicht. Diese Option setzt voraus, dass der sync_object-Parameter angegeben wird. Für diesen Artikeltyp muss die Basistabelle nicht separat veröffentlicht werden. Wird von Oracle-Verlegern nicht unterstützt.

    indexed view schema only

    Indizierte Sicht vom Typ schema only. Für diesen Artikeltyp muss die Basistabelle ebenfalls veröffentlicht werden.

    logbased (Standard)

    Protokollbasierter Artikel.

    logbased manualboth

    Protokollbasierter Artikel mit manuell erstelltem Filter und manuell erstellter Sicht. Diese Option setzt voraus, dass die sync_object- und filter-Parameter angegeben werden. Wird von Oracle-Verlegern nicht unterstützt.

    logbased manualfilter

    Protokollbasierter Artikel mit manuell erstelltem Filter. Diese Option setzt voraus, dass die sync_object- und filter-Parameter angegeben werden. Wird von Oracle-Verlegern nicht unterstützt.

    logbased manualview

    Protokollbasierter Artikel mit manuell erstellter Sicht. Diese Option setzt voraus, dass der sync_object-Parameter angegeben wird. Wird von Oracle-Verlegern nicht unterstützt.

    proc exec

    Repliziert die Ausführung der gespeicherten Prozedur auf alle Abonnenten des Artikels. Wird von Oracle-Verlegern nicht unterstützt. Wir empfehlen, dass Sie die Option serializable proc exec anstelle von proc exec verwenden. Weitere Informationen finden Sie im Abschnitt "Typen von Artikeln für die Ausführung einer gespeicherten Prozedur" unter Veröffentlichen der Ausführung von gespeicherten Prozeduren in der Transaktionsreplikation.

    proc schema only

    Prozedur vom Typ schema only. Wird von Oracle-Verlegern nicht unterstützt.

    serializable proc exec

    Repliziert die Ausführung der gespeicherten Prozedur nur, wenn die Prozedur im Kontext einer serialisierbaren Transaktion ausgeführt wird. Wird von Oracle-Verlegern nicht unterstützt.

    view schema only

    Sicht vom Typ schema only. Wird von Oracle-Verlegern nicht unterstützt. Wenn diese Option verwendet wird, müssen Sie auch die Basistabelle veröffentlichen.

  • [ @filter = ] 'filter'
    Die gespeicherte Prozedur (mit FOR REPLICATION erstellt), mithilfe derer die Tabelle horizontal gefiltert wird. filter ist ein Wert vom Datentyp nvarchar(386). Der Standardwert ist NULL. sp_articleview und sp_articlefilter müssen manuell ausgeführt werden, um die Sicht und die gespeicherte Filterprozedur zu erstellen. Bei einem Wert ungleich NULL wird die Filterprozedur nicht erstellt (es wird angenommen, dass die gespeicherte Prozedur manuell erstellt wird).

  • [ @sync_object = ] 'sync_object'
    Der Name der Tabelle oder Sicht, mithilfe derer die Datendatei erstellt wird, die für die Darstellung des Snapshots für diesen Artikel verwendet wird. sync_object ist ein Wert vom Datentyp nvarchar(386). Der Standardwert ist NULL. Bei NULL wird sp_articleview aufgerufen, um die Sicht automatisch zu erstellen, die zur Generierung der Ausgabedatei verwendet wird. Dies erfolgt nach jedem Hinzufügen von Spalten mit sp_articlecolumn. Bei einem Wert ungleich NULL wird keine Sicht erstellt (es wird angenommen, dass die Sicht manuell erstellt wird).

  • [ @ins_cmd = ] 'ins_cmd'
    Der Replikationsbefehlstyp, der zur Replikation von Einfügungen für diesen Artikel verwendet wird. ins_cmd ist ein Wert vom Datentyp nvarchar(255). Die folgenden Werte sind möglich.

    Wert

    Beschreibung

    NONE

    Es wird keine Maßnahme ergriffen.

    CALL sp_MSins_table (Standard)

    - Oder -

    CALL custom_stored_procedure_name

    Eine gespeicherte Prozedur wird aufgerufen, die auf dem Abonnenten ausgeführt werden soll. Wenn Sie diese Methode der Replikation verwenden möchten, verwenden Sie schema_option, um die automatische Erstellung der gespeicherten Prozedur anzugeben, oder erstellen Sie die angegebene gespeicherte Prozedur in der Zieldatenbank jedes Abonnenten des Artikels. custom_stored_procedure ist der Name einer vom Benutzer erstellten gespeicherten Prozedur. sp_MSins_table enthält den Namen der Zieltabelle anstelle des _table-Anteils des Parameters. Wird destination_owner angegeben, wird der Wert dem Namen der Zieltabelle vorangestellt. Für die ProductCategory-Tabelle im Besitz des Production-Schemas auf dem Abonnenten lautet der Parameter beispielsweise CALL sp_MSins_ProductionProductCategory. Bei einem Artikel in einer Peer-to-Peer-Replikationstopologie wird _table mit einem GUID-Wert angefügt. custom_stored_procedure wird für die Aktualisierung von Abonnenten nicht unterstützt.

    SQL oder NULL

    Repliziert eine INSERT-Anweisung. Für die INSERT-Anweisung werden Werte für alle in dem Artikel veröffentlichten Spalten bereitgestellt. Der folgende Befehl wird bei Einfügungen repliziert:

    INSERT INTO <table name> VALUES (c1value, c2value, c3value, ..., cnvalue)

    Weitere Informationen finden Sie unter Angeben der Weitergabemethode für Änderungen bei Transaktionsartikeln.

  • [ @del_cmd =] 'del_cmd'
    Der Replikationsbefehlstyp, der zur Replikation von Löschungen für diesen Artikel verwendet wird. del_cmd ist ein Wert vom Datentyp nvarchar(255). Die folgenden Werte sind möglich.

    Wert

    Beschreibung

    NONE

    Es wird keine Maßnahme ergriffen.

    CALLsp_MSdel_Tabelle (Standard)

    - Oder -

    CALL custom_stored_procedure_name

    Eine gespeicherte Prozedur wird aufgerufen, die auf dem Abonnenten ausgeführt werden soll. Wenn Sie diese Methode der Replikation verwenden möchten, verwenden Sie schema_option, um die automatische Erstellung der gespeicherten Prozedur anzugeben, oder erstellen Sie die angegebene gespeicherte Prozedur in der Zieldatenbank jedes Abonnenten des Artikels. custom_stored_procedure ist der Name einer vom Benutzer erstellten gespeicherten Prozedur. sp_MSdel_table enthält den Namen der Zieltabelle anstelle des _table-Anteils des Parameters. Wird destination_owner angegeben, wird der Wert dem Namen der Zieltabelle vorangestellt. Für die ProductCategory-Tabelle im Besitz des Production-Schemas auf dem Abonnenten lautet der Parameter beispielsweise CALL sp_MSdel_ProductionProductCategory. Bei einem Artikel in einer Peer-to-Peer-Replikationstopologie wird _table mit einem GUID-Wert angefügt. custom_stored_procedure wird für die Aktualisierung von Abonnenten nicht unterstützt.

    XCALL sp_MSdel_table

    - Oder -

    XCALL custom_stored_procedure_name

    Ruft eine gespeicherte Prozedur auf, die XCALL-Parameter akzeptiert. Für die Verwendung dieser Replikationsmethode legen Sie mit schema_option fest, dass die gespeicherte Prozedur automatisch erstellt wird, oder erstellen Sie die gespeicherte Prozedur in der Zieldatenbank jedes Abonnenten des Artikels. Die Angabe einer benutzerdefinierten gespeicherten Prozedur ist für die Aktualisierung von Abonnenten nicht zulässig.

    SQL oder NULL

    Repliziert eine DELETE-Anweisung. Für die DELETE-Anweisung werden alle Spaltenwerte der Primärschlüssel bereitgestellt. Der folgende Befehl wird bei Löschungen repliziert:

    DELETE FROM <table name> WHERE pkc1 = pkc1value AND pkc2 = pkc2value AND pkcn = pkcnvalue

    Weitere Informationen finden Sie unter Angeben der Weitergabemethode für Änderungen bei Transaktionsartikeln.

  • [ @upd_cmd =] 'upd_cmd'
    Der Replikationsbefehlstyp, der zur Replikation von Aktualisierungen für diesen Artikel verwendet wird. upd_cmd ist ein Wert vom Datentyp nvarchar(255). Die folgenden Werte sind möglich.

    Wert

    Beschreibung

    NONE

    Es wird keine Maßnahme ergriffen.

    CALL sp_MSupd_table

    - Oder -

    CALL custom_stored_procedure_name

    Eine gespeicherte Prozedur wird aufgerufen, die auf dem Abonnenten ausgeführt werden soll. Für die Verwendung dieser Replikationsmethode legen Sie mit schema_option fest, dass die gespeicherte Prozedur automatisch erstellt wird, oder erstellen Sie die gespeicherte Prozedur in der Zieldatenbank jedes Abonnenten des Artikels.

    MCALL sp_MSupd_table

    - Oder -

    MCALL custom_stored_procedure_name

    Ruft eine gespeicherte Prozedur auf, die MCALL-Parameter akzeptiert. Wenn Sie diese Methode der Replikation verwenden möchten, verwenden Sie schema_option, um die automatische Erstellung der gespeicherten Prozedur anzugeben, oder erstellen Sie die angegebene gespeicherte Prozedur in der Zieldatenbank jedes Abonnenten des Artikels. custom_stored_procedure ist der Name einer vom Benutzer erstellten gespeicherten Prozedur. sp_MSupd_table enthält den Namen der Zieltabelle anstelle des _table-Anteils des Parameters. Wird destination_owner angegeben, wird der Wert dem Namen der Zieltabelle vorangestellt. Für die ProductCategory-Tabelle im Besitz des Production-Schemas auf dem Abonnenten lautet der Parameter beispielsweise MCALL sp_MSupd_ProductionProductCategory. Bei einem Artikel in einer Peer-to-Peer-Replikationstopologie wird _table mit einem GUID-Wert angefügt. Die Angabe einer benutzerdefinierten gespeicherten Prozedur ist für die Aktualisierung von Abonnenten nicht zulässig.

    SCALL sp_MSupd_table (Standard)

    - Oder -

    SCALL custom_stored_procedure_name

    Ruft eine gespeicherte Prozedur auf, die SCALL-Parameter akzeptiert. Wenn Sie diese Methode der Replikation verwenden möchten, verwenden Sie schema_option, um die automatische Erstellung der gespeicherten Prozedur anzugeben, oder erstellen Sie die angegebene gespeicherte Prozedur in der Zieldatenbank jedes Abonnenten des Artikels. custom_stored_procedure ist der Name einer vom Benutzer erstellten gespeicherten Prozedur. sp_MSupd_table enthält den Namen der Zieltabelle anstelle des _table-Anteils des Parameters. Wird destination_owner angegeben, wird der Wert dem Namen der Zieltabelle vorangestellt. Für die ProductCategory-Tabelle im Besitz des Production-Schemas auf dem Abonnenten lautet der Parameter beispielsweise SCALL sp_MSupd_ProductionProductCategory. Bei einem Artikel in einer Peer-to-Peer-Replikationstopologie wird _table mit einem GUID-Wert angefügt. Die Angabe einer benutzerdefinierten gespeicherten Prozedur ist für die Aktualisierung von Abonnenten nicht zulässig.

    XCALL sp_MSupd_table

    - Oder -

    XCALL custom_stored_procedure_name

    Ruft eine gespeicherte Prozedur auf, die XCALL-Parameter akzeptiert. Für die Verwendung dieser Replikationsmethode legen Sie mit schema_option fest, dass die gespeicherte Prozedur automatisch erstellt wird, oder erstellen Sie die gespeicherte Prozedur in der Zieldatenbank jedes Abonnenten des Artikels. Die Angabe einer benutzerdefinierten gespeicherten Prozedur ist für die Aktualisierung von Abonnenten nicht zulässig.

    SQL oder NULL

    Repliziert eine UPDATE-Anweisung. Die UPDATE-Anweisung wird für alle Spaltenwerte und für die Spaltenwerte der Primärschlüssel bereitgestellt. Der folgende Befehl wird bei Aktualisierungen repliziert:

    UPDATE <table name> SET c1 = c1value, SET c2 = c2value, SET cn = cnvalue WHERE pkc1 = pkc1value AND pkc2 = pkc2value AND pkcn = pkcnvalue
    HinweisHinweis

    Die CALL-, MCALL-, SCALL- und XCALL-Syntax variiert den Umfang der Daten, die an den Abonnenten weitergegeben werden. Die CALL-Syntax übergibt alle Werte für alle eingefügten und gelöschten Spalten. Die SCALL-Syntax übergibt nur die Werte für betroffene Spalten. Die XCALL-Syntax übergibt die Werte für alle Spalten, unabhängig davon, ob diese geändert wurden, einschließlich des vorherigen Werts der Spalte. Weitere Informationen finden Sie unter Angeben der Weitergabemethode für Änderungen bei Transaktionsartikeln.

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

  • [ @description =] 'description'
    Eine Beschreibung des Artikels. description ist ein Wert vom Datentyp nvarchar(255). Der Standardwert ist NULL.

  • [ @pre_creation_cmd =] 'pre_creation_cmd'
    Gibt an, welche Schritte vom System auszuführen sind, wenn beim Anwenden des Snapshots für diesen Artikel ein vorhandenes Objekt mit demselben Namen auf dem Abonnenten erkannt wird. pre_creation_cmd ist ein Wert vom Datentyp nvarchar(10). Die folgenden Werte sind möglich.

    Wert

    Beschreibung

    none

    Verwendet keinen Befehl.

    delete

    Löscht Daten aus der Zieltabelle vor dem Anwenden des Snapshots. Wird der Artikel horizontal gefiltert, werden nur Daten in Spalten gelöscht, die von der Filterklausel angegeben werden. Wird von Oracle-Verlegern nicht unterstützt, wenn ein horizontaler Filter definiert wurde.

    drop (Standard)

    Entfernt die Zieltabelle.

    truncate

    Schneidet die Zieltabelle ab. Gilt nicht für ODBC- oder OLE DB-Abonnenten.

  • [ @filter_clause=] 'filter_clause'
    Eine Einschränkungsklausel (WHERE), die einen horizontalen Filter definiert. Verwenden Sie beim Eingeben der Einschränkungsklausel nicht das WHERE-Schlüsselwort. filter_clause ist ein Wert vom Datentyp ntext. Der Standardwert ist NULL. Weitere Informationen finden Sie unter Filtern von veröffentlichten Daten.

  • [ @schema_option =] schema_option
    Die Bitmaske 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:

    HinweisHinweis

    Ist dieser Wert NULL, generiert das System automatisch eine gültige Schemaoption für den Artikel, abhängig von anderen Artikeleigenschaften. Die in den Hinweisen angegebene Default Schema Options-Tabelle zeigt den Wert an, der auf der Grundlage der Kombination des Artikeltyps und des Replikationstyps gewählt wird.

    Wert

    Beschreibung

    0x00

    Deaktiviert die Skripterstellung durch den Snapshot-Agent und verwendet creation_script.

    0x01

    Generiert das Objekterstellungsskript (CREATE TABLE, CREATE PROCEDURE usw.). Dieser Wert ist der Standard für alle Artikel mit gespeicherten Prozeduren.

    0x02

    Generiert die gespeicherten Prozeduren, die Änderungen für den Artikel weitergeben (falls definiert).

    0x04

    Die Skripterstellung für Identitätsspalten erfolgt mithilfe der IDENTITY-Eigenschaft.

    0x08

    Repliziert timestamp-Spalten. Falls nicht festgelegt, werden timestamp-Spalten als binary repliziert.

    0x10

    Generiert einen entsprechenden gruppierten Index. Auch wenn diese Option nicht festgelegt ist, werden Indizes bezüglich der Primärschlüssel und der UNIQUE-Einschränkungen generiert, falls diese für eine veröffentlichte Tabelle bereits definiert sind.

    0x20

    Konvertiert benutzerdefinierte Datentypen (UDT) auf dem Abonnenten in Basisdatentypen. Diese Option kann nicht verwendet werden, wenn eine CHECK- oder DEFAULT-Einschränkung für eine UDT-Spalte vorhanden ist, wenn eine UDT-Spalte Teil des Primärschlüssels ist oder wenn eine berechnete Spalte auf eine UDT-Spalte verweist. Wird von Oracle-Verlegern nicht unterstützt.

    0x40

    Generiert entsprechende nicht gruppierte Indizes. Auch wenn diese Option nicht festgelegt ist, werden Indizes bezüglich der Primärschlüssel und der UNIQUE-Einschränkungen generiert, falls diese für eine veröffentlichte Tabelle bereits definiert sind.

    0x80

    Repliziert Primärschlüsseleinschränkungen. Alle Indizes bezüglich der Einschränkung werden ebenfalls repliziert, auch wenn die Optionen 0x10 und 0x40 nicht aktiviert sind.

    0x100

    Repliziert Benutzertrigger für einen Tabellenartikel, wenn definiert. Wird von Oracle-Verlegern nicht unterstützt.

    0x200

    Repliziert Fremdschlüsseleinschränkungen. Wenn die Tabelle, auf die verwiesen wird, nicht Teil einer Veröffentlichung ist, werden keine Fremdschlüsseleinschränkungen für eine veröffentlichte Tabelle repliziert. Wird von Oracle-Verlegern nicht unterstützt.

    0x400

    Repliziert CHECK-Einschränkungen. Wird von Oracle-Verlegern nicht unterstützt.

    0x800

    Repliziert Standards. Wird von Oracle-Verlegern nicht unterstützt.

    0x1000

    Repliziert die Sortierung auf Spaltenebene.

    HinweisHinweis
    Dieser Option sollte für Oracle-Verleger eingerichtet werden, um Vergleiche zu ermöglichen, die nach Groß-/Kleinschreibung unterscheiden.

    0x2000

    Repliziert erweiterte Eigenschaften, die dem Quellobjekt des veröffentlichten Artikels zugeordnet sind. Wird von Oracle-Verlegern nicht unterstützt.

    0x4000

    Repliziert UNIQUE-Einschränkungen. Alle Indizes bezüglich der Einschränkung werden ebenfalls repliziert, auch wenn die Optionen 0x10 und 0x40 nicht aktiviert sind.

    0x8000

    Diese Option ist für SQL Server 2005-Verleger nicht gültig.

    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

    Standardbindungen

    0x800000

    Regelbindungen

    0x1000000

    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 "Zuordnen von neuen 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 den Snapshot auf dem Abonnenten anwenden. Weitere Informationen zum Erstellen von Objekten vor dem Anwenden des Snapshots 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) mit mehr als 8000 Bytes 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.

    0x20000000000

    Repliziert das SPARSE-Attribut für Spalten. Weitere Informationen zu diesem Attribut finden Sie unter Verwenden von Spalten mit geringer Dichte.

    NULL

    Bei der Replikation wird schema_option automatisch auf einen Standardwert festgelegt, wobei der Wert von anderen Artikeleigenschaften abhängig ist. Die in den Hinweisen enthaltene Tabelle "Default Schema Options" zeigt die Standardschemaoptionen auf der Grundlage des Artikeltyps und des Replikationstyps an.

    Der Standard für Nicht-SQL Server-Veröffentlichungen ist 0x050D3.

    Nicht alle schema_option-Werte sind für jeden Replikations- oder Artikeltyp gültig. Die in den Hinweisen enthaltene Valid Schema Options-Tabelle zeigt die gültigen Schemaoptionen an, die auf der Grundlage der Kombination des Artikeltyps und des Replikationstyps gewählt werden können.

  • [ @destination_owner =] 'destination_owner'
    Der Name des Besitzers des Zielobjekts. destination_owner ist ein Wert vom Datentyp sysname. Der Standardwert ist NULL. Wird destination_owner nicht angegeben, wird der Besitzer automatisch anhand der folgenden Regeln angegeben:

    Bedingung

    Zielobjektbesitzer

    Die Veröffentlichung generiert den Anfangssnapshot, der nur SQL Server-Abonnenten unterstützt, über das Massenkopieren im systemeigenen Modus.

    Der Standardwert ist der Wert von source_owner.

    Veröffentlicht von einem Nicht-SQL Server-Verleger.

    Standardmäßig wird der Besitzer der Zieldatenbank verwendet.

    Die Veröffentlichung generiert den Anfangssnapshot, der Nicht-SQL Server-Abonnenten unterstützt, über das Massenkopieren im Zeichenmodus.

    Nicht zugewiesen.

    destination_owner muss NULL sein, um Nicht-SQL Server-Abonnenten zu unterstützen.

  • [ @status=] status
    Gibt den Status eines Artikels sowie zusätzliche Optionen für die Weitergabe von Änderungen an. status ist ein Wert vom Datentyp tinyint und kann das | (Bitweises OR)-Produkt mindestens eines der folgenden Werte sein.

    Wert

    Beschreibung

    1

    Der Artikel ist aktiv.

    8

    Bezieht den Spaltennamen in INSERT-Anweisungen mit ein.

    16 (Standard)

    Verwendet parametrisierte Anweisungen.

    24

    Bezieht den Spaltennamen in INSERT-Anweisungen mit ein und verwendet parametrisierte Anweisungen.

    64

    Nur für Informationszwecke identifiziert. Nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.

    So würde beispielsweise ein aktiver Artikel, der parametrisierte Anweisungen verwendet, den Wert 17 in dieser Spalte aufweisen. Der Wert 0 bedeutet, dass der Artikel inaktiv ist und keine zusätzlichen Eigenschaften definiert wurden.

  • [ @source_owner =] 'source_owner'
    Der Besitzer des Quellobjekts. source_owner ist ein Wert vom Datentyp sysname. Der Standardwert ist NULL. source_owner muss für Oracle-Verleger angegeben werden.

  • [ @sync_object_owner =] 'sync_object_owner'
    Der Besitzer der Sicht, die den veröffentlichten Artikel definiert. sync_object_owner ist ein Wert vom Datentyp sysname. Der Standardwert ist NULL.

  • [ @filter_owner =] 'filter_owner'
    Der Besitzer des Filters. filter_owner ist ein Wert vom Datentyp sysname. Der Standardwert ist NULL.

  • [ @source_object =] 'source_object'
    Das zu veröffentlichende Datenbankobjekt. source_object ist ein Wert vom Datentyp sysname. Der Standardwert ist NULL. Wenn source_table NULL ist, kann source_object nicht NULL sein.source_object sollte anstelle von source_table verwendet werden. Weitere Informationen zu den Objekttypen, die mithilfe der Snapshot- oder der Transaktionsreplikation veröffentlicht werden können, finden Sie unter Veröffentlichen von Daten und Datenbankobjekten.

  • [ @artid = ] article_ID OUTPUT
    Die Artikel-ID des neuen Artikels. article_ID ist ein Wert vom Datentyp int, besitzt den Standardwert NULL und ist ein OUTPUT-Parameter.

  • [ @auto_identity_range = ] 'auto_identity_range'
    Aktiviert und deaktiviert die automatische Behandlung von Identitätsbereichen in einer Veröffentlichung bei der Erstellung. auto_identity_range ist ein Wert vom Datentyp nvarchar(5). Die folgenden Werte sind möglich:

    Wert

    Beschreibung

    true

    Aktiviert die automatische Behandlung von Identitätsbereichen

    false

    Deaktiviert die automatische Behandlung von Identitätsbereichen

    NULL (Standard)

    Die Behandlung von Identitätsbereichen wird festgelegt durch identityrangemanagementoption.

    HinweisHinweis

    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 Bereichsgröße auf dem Verleger, wenn für den Artikel identityrangemanagementoption auf auto oder auto_identity_range auf true festgelegt ist. pub_identity_range ist ein Wert vom Datentyp bigint. Der Standardwert ist NULL. Wird nicht für Oracle-Verleger unterstützt.

  • [ @identity_range = ] identity_range
    Steuert die Bereichsgröße auf dem Abonnenten, wenn für den Artikel identityrangemanagementoption auf auto oder auto_identity_range auf true festgelegt ist. identity_range ist ein Wert vom Datentyp bigint. Der Standardwert ist NULL. Wird verwendet, wenn auto_identity_range auf true festgelegt ist. Wird von Oracle-Verlegern nicht unterstützt.

  • [ @threshold = ] threshold
    Der Prozentwert, der steuert, wann der Verteilungs-Agent einen neuen Identitätsbereich zuweist. Wenn der in threshold angegebene Prozentsatz verwendet wird, erstellt der Verteilungs-Agent einen neuen Identitätsbereich. threshold ist ein Wert vom Datentyp bigint. Der Standardwert ist NULL. Wird verwendet, wenn identityrangemanagementoption auf auto oder auto_identity_range auf true festgelegt ist. Wird nicht für Oracle-Verleger unterstützt.

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

    0 gibt an, dass durch Hinzufügen eines Artikels nicht bewirkt wird, 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 durch Hinzufügen eines Artikels der Snapshot 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.

  • [ @use_default_datatypes = ] use_default_datatypes
    Gibt an, ob die Datentypzuordnungen der Standardspalte beim Veröffentlichen eines Artikels von einem Oracle-Verleger verwendet werden. use_default_datatypes ist vom Datentyp bit; der Standardwert ist 1.

    1 = die Standardartikel-Spaltenzuordnungen werden verwendet. Die Standard-Datentypzuordnungen können durch Ausführen von sp_getdefaultdatatypemapping angezeigt werden.

    0 = benutzerdefinierte Artikelspaltenzuordnungen wurden definiert; deshalb wird sp_articleview nicht von sp_addarticle aufgerufen.

    Wird use_default_datatypes auf den Wert 0 festgelegt, müssen Sie sp_changearticlecolumndatatype für jede Spaltenzuordnung, die von der Standardeinstellung zu einem anderen Wert geändert wird, einmal ausführen. Nach der Definition aller benutzerdefinierten Spaltenzuordnungen müssen Sie sp_articleview ausführen.

    HinweisHinweis

    Dieser Parameter sollte nur für Oracle-Verleger verwendet werden. Wird use_default_datatypes auf den Wert 0 für einen SQL Server-Verleger festgelegt, wird ein Fehler generiert.

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

    Die Replikation führt keine explizite Identitätsbereichsverwaltung aus. Diese Option wird nur aus Gründen der Abwärtskompatibilität mit früheren Versionen von SQL Server verwendet. Ist für die Peer-Replikation nicht zulässig.

    manual

    Markiert die Identitätsspalte mithilfe von NOT FOR REPLICATION, um die manuelle Identitätsbereichsverwaltung zu ermöglichen.

    auto

    Gibt die automatisierte Verwaltung von Identitätsbereichen an.

    NULL (Standard)

    Der Standardwert ist none, wenn der Wert von auto_identity_rangetrue ist. Die Standardeinstellung in einer Peer-to-Peer-Topologie ist manual (auto_identity_range wird ignoriert).

    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.

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

    HinweisHinweis

    publisher sollte nicht verwendet werden, wenn einem SQL Server-Verleger ein Artikel hinzugefügt wird.

  • [ @fire_triggers_on_snapshot = ] 'fire_triggers_on_snapshot'
    Gibt an, ob replizierte Benutzertrigger ausgeführt werden, wenn der Anfangssnapshot angewendet wird. fire_triggers_on_snapshot ist ein Wert vom Datentyp nvarchar(5). Der Standardwert ist FALSE. true bedeutet, dass Benutzertrigger für eine replizierte Tabelle ausgeführt werden, wenn der Snapshot angewendet wird. Für die Replikation von Triggern muss der Bitmaskenwert von schema_option den Wert 0x100 enthalten.

Rückgabecodewerte

0 (Erfolg) oder 1 (Fehler)

Hinweise

sp_addarticle wird bei der Snapshot- oder Transaktionsreplikation verwendet.

Standardmäßig werden bei der Replikation keine Spalten in der Quelltabelle veröffentlicht, wenn der Spaltendatentyp nicht von der Replikation unterstützt wird. Wenn eine solche Spalte veröffentlicht werden soll, muss sp_articlecolumn ausgeführt werden, um die Spalte hinzuzufügen. Weitere Informationen finden Sie unter Überlegungen zu allen Replikationstypen.

Wird einer Veröffentlichung, die die Peer-to-Peer-Transaktionsreplikation unterstützt, ein Artikel hinzugefügt, gelten die folgenden Einschränkungen:

  • Parametrisierte Anweisungen müssen für alle logbased-Artikel angegeben werden. 16 muss in den status-Wert eingeschlossen werden.

  • Name und Besitzer der Ziel- und der Quelltabelle müssen übereinstimmen.

  • Der Artikel kann nicht horizontal oder vertikal gefiltert werden.

  • Die automatische Identitätsbereichsverwaltung wird nicht unterstützt. Für identityrangemanagementoption muss der Wert manual angegeben werden.

  • Ist eine timestamp-Spalte in der Tabelle vorhanden, muss 0x08 in schema_option eingeschlossen werden, damit die Spalte als timestamp repliziert wird.

  • Der Wert SQL kann nicht für ins_cmd, upd_cmd und del_cmd angegeben werden.

Weitere Informationen finden Sie unter Peer-to-Peer-Transaktionsreplikation.

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 beispielsweise eine Sicht veröffentlichen, die von einer Tabelle abhängt, muss auch die Tabelle veröffentlicht werden.

Ist vertical_partition auf true festgelegt, verzögert sp_addarticle das Erstellen der Sicht, bis sp_articleview aufgerufen wird (nachdem die letzte Spalte mit sp_articlecolumn hinzugefügt wurde).

Wenn die Veröffentlichung Abonnements mit Aktualisierung zulässt und die veröffentlichte Tabelle keine uniqueidentifier-Spalte aufweist, fügt sp_addarticle der Tabelle automatisch eine uniqueidentifier-Spalte hinzu.

Default Schema Options

In dieser Tabelle wird der durch die Replikation festgelegte Standardwert beschrieben, wenn schema_options nicht vom Benutzer angegeben wird. Dabei hängt dieser Wert vom Replikationstyp (oben angezeigt) und vom Artikeltyp (in der ersten Spalte angezeigt) ab.

Artikeltyp

Replikationstyp

 

 

Transaktion

Snapshot

aggregate schema only

0x01

0x01

func schema only

0x01

0x01

indexed view schema only

0x01

0x01

indexed view logbased

0x30F3

0x3071

indexed view logbase manualboth

0x30F3

0x3071

indexed view logbased manualfilter

0x30F3

0x3071

indexed view logbased manualview

0x30F3

0x3071

logbased

0x30F3

0x3071

logbased manualfilter

0x30F3

0x3071

logbased manualview

0x30F3

0x3071

proc exec

0x01

0x01

proc schema only

0x01

0x01

serializable proc exec

0x01

0x01

view schema only

0x01

0x01

HinweisHinweis

Wurde das verzögerte Update für eine Veröffentlichung aktiviert, wird der schema_option-Wert 0x80 dem Standardwert (siehe Tabelle) hinzugefügt. Der schema_option-Standardwert für eine Nicht-SQL Server-Veröffentlichung ist 0x050D3.

Valid Schema Options

In dieser 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

serializable 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

HinweisHinweis

Für Veröffentlichungen, die verzögertes Update über eine Warteschlange zulassen, müssen die schema_option-Werte 0x8000 und 0x80 aktiviert werden. Die unterstützten schema_option-Werte für Nicht-SQL Server-Veröffentlichungen sind: 0x01, 0x02, 0x10, 0x40, 0x80, 0x1000, 0x4000 und 0X8000.

Beispiel

DECLARE @publication    AS sysname;
DECLARE @table AS sysname;
DECLARE @filterclause AS nvarchar(500);
DECLARE @filtername AS nvarchar(386);
DECLARE @schemaowner AS sysname;
SET @publication = N'AdvWorksProductTran'; 
SET @table = N'Product';
SET @filterclause = N'[DiscontinuedDate] IS NULL'; 
SET @filtername = N'filter_out_discontinued';
SET @schemaowner = N'Production';

-- Add a horizontally and vertically filtered article for the Product table.
-- Manually set @schema_option to ensure that the Production schema 
-- is generated at the Subscriber (0x8000000).
EXEC sp_addarticle 
    @publication = @publication, 
    @article = @table, 
    @source_object = @table,
    @source_owner = @schemaowner, 
    @schema_option = 0x80030F3,
    @vertical_partition = N'true', 
    @type = N'logbased',
    @filter_clause = @filterclause;

-- (Optional) Manually call the stored procedure to create the 
-- horizontal filtering stored procedure. Since the type is 
-- 'logbased', this stored procedures is executed automatically.
EXEC sp_articlefilter 
    @publication = @publication, 
    @article = @table, 
    @filter_clause = @filterclause, 
    @filter_name = @filtername;

-- Add all columns to the article.
EXEC sp_articlecolumn 
    @publication = @publication, 
    @article = @table;

-- Remove the DaysToManufacture column from the article
EXEC sp_articlecolumn 
    @publication = @publication, 
    @article = @table, 
    @column = N'DaysToManufacture', 
    @operation = N'drop';

-- (Optional) Manually call the stored procedure to create the 
-- vertical filtering view. Since the type is 'logbased', 
-- this stored procedures is executed automatically.
EXEC sp_articleview 
    @publication = @publication, 
    @article = @table,
    @filter_clause = @filterclause;
GO

Berechtigungen

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