sp_addarticle (Transact-SQL)

Aktualisiert: 14. April 2006

Erstellt einen Artikel und fügt ihn zu einer Publikation hinzu. Diese gespeicherte Prozedur wird beim Verleger mit der Publikationsdatenbank 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 Publikation, 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 Publikation eindeutig sein. article ist ein Wert vom Datentyp sysname und weist keinen Standardwert auf.
  • [ @source_table = ] 'source_table'
    Dieser Parameter wurde als veraltet markiert und wird aus Gründen der Abwärtskompatibilität von Skripts unterstützt. Verwenden Sie anstelle dessen source_object. 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.

    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_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_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_Tabelle

    - 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_Tabelle

    - 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_Tabelle

    - 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_Tabelle (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_Tabelle

    - 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
    ms173857.note(de-de,SQL.90).gifHinweis:
    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 Wertes 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:

    ms173857.note(de-de,SQL.90).gifHinweis:
    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

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

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

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

    ms173857.note(de-de,SQL.90).gifHinweis:
    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.

    ms173857.note(de-de,SQL.90).gifHinweis:
    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 Publikation, 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. Beim Veröffentlichen eines Datenbankobjekts, das von einem oder mehreren Objekten 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 Publikation 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.

Bei Artikeln, die transformierbare Abonnements unterstützen, werden die für ins_cmd, del_cmd und upd_cmd angegebenen Werte ignoriert.

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

serialized proc exec

0x01

0x01

view schema only

0x01

0x01

ms173857.note(de-de,SQL.90).gifHinweis:
Wurde das verzögerte Update für eine Publikation aktiviert, wird der schema_option-Wert 0x80 dem Standardwert (siehe Tabelle) hinzugefügt. Der schema_option-Standardwert für eine Nicht-SQL Server-Publikation 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

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

ms173857.note(de-de,SQL.90).gifHinweis:
Für Publikationen, 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-Publikationen sind: 0x01, 0x02, 0x10, 0x40, 0x80, 0x1000, 0x4000 und 0X8000.

Berechtigungen

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

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

Siehe auch

Verweis

sp_articlecolumn (Transact-SQL)
sp_articlefilter (Transact-SQL)
sp_articleview (Transact-SQL)
sp_changearticle (Transact-SQL)
sp_droparticle (Transact-SQL)
sp_helparticle (Transact-SQL)
sp_helparticlecolumns (Transact-SQL)
Gespeicherte Replikationsprozeduren (Transact-SQL)

Andere Ressourcen

How to: Define an Article (Replication Transact-SQL Programming)
Veröffentlichen von Daten und Datenbankobjekten

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:
  • Weitere Einschränkungen beim Festlegen der Option 0x20 für den Parameter schema_option wurden dokumentiert.
Geänderter Inhalt:
  • Die Beschreibungen der unterstützten Optionen für den Parameter type wurden verdeutlicht.
  • Die Größe des Parameters creation_script wurde korrigiert.