sp_addarticle (Transact-SQL)

Anwendungsbereich: JaSQL Server (alle unterstützten Versionen) JaVerwaltete Azure SQL-Instanz

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

Symbol für Themenlink 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 in der Datenbank eindeutig sein. publication ist vom Datentyp sysname und hat keinen Standardwert.

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

[ @source_table = ] 'source_table'Dieser Parameter ist veraltet. Verwenden Sie stattdessen source_object.

Der Parameter wird von Oracle-Verlegern nicht unterstützt.

[ @destination_table = ] 'destination_table' Der Name der Zieltabelle (Abonnementtabelle), wenn er sich von source_table oder der gespeicherten Prozedur unterscheidet. destination_table ist sysname mit dem Standardwert NULL, was bedeutet, dass source_table gleich destination_table* ist.*

[ @vertical_partition = ] 'vertical_partition' Aktiviert und deaktiviert die Spaltenfilterung für einen Tabellenartikel. vertical_partition ist nchar(5) mit dem Standardwert FALSE.

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

True löscht alle Spalten mit Ausnahme des deklarierten Primärschlüssels, Spalten, die NULL-Werte zutreffen, ohne Standardwerte, und Spalten mit eindeutigen Schlüsseln. Spalten werden mit sp_articlecolumnhinzugefügt.

[ @type = ] 'type' Der Typ des Artikels. type ist vom Datentyp sysname und kann einer der folgenden Werte sein.

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. Diese Option wird für Oracle-Verleger 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. Für diese Option müssen Sie sowohl sync_object als auch Filterparameter angeben. Für diesen Artikeltyp muss die Basistabelle nicht separat veröffentlicht werden. Diese Option wird für Oracle-Verleger nicht unterstützt.
indexed view logbased manualfilter Artikel für protokollbasierte indizierte Sicht mit manuell erstelltem Filter. Für diese Option müssen Sie sowohl sync_object als auch Filterparameter angeben. Für diesen Artikeltyp muss die Basistabelle nicht separat veröffentlicht werden. Diese Option wird für Oracle-Verleger nicht unterstützt.
indexed view logbased manualview Artikel für protokollbasierte indizierte Sicht mit manuell erstellter Sicht. Für diese Option müssen Sie den sync_object Parameter angeben. Für diesen Artikeltyp muss die Basistabelle nicht separat veröffentlicht werden. Diese Option wird für Oracle-Verleger 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. Für diese Option müssen Sie sowohl sync_object als auch Filterparameter angeben. Diese Option wird für Oracle-Verleger nicht unterstützt.
logbased manualfilter Protokollbasierter Artikel mit manuell erstelltem Filter. Für diese Option müssen Sie sowohl sync_object als auch Filterparameter angeben. Diese Option wird für Oracle-Verleger nicht unterstützt.
logbased manualview Protokollbasierter Artikel mit manuell erstellter Sicht. Für diese Option müssen Sie den sync_object Parameter angeben. Diese Option wird für Oracle-Verleger nicht unterstützt.
proc exec Repliziert die Ausführung der gespeicherten Prozedur auf alle Abonnenten des Artikels. Diese Option wird für Oracle-Verleger nicht unterstützt. Es wird empfohlen, die Option serialisierbar proc exec anstelle von proc exec zu verwenden. Weitere Informationen finden Sie im Abschnitt "Typen von Artikeln zur Ausführung gespeicherter Prozeduren" unter Veröffentlichen der Ausführung gespeicherter Prozeduren in der Transaktionsreplikation. Nicht verfügbar, wenn Change Data Capture aktiviert ist.
proc schema only Prozedur vom Typ schema only. Diese Option wird für Oracle-Verleger 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. Diese Option wird für Oracle-Verleger nicht unterstützt.

Der Vorgang muss auch innerhalb einer expliziten Transaktion ausgeführt werden, damit die Ausführung repliziert werden kann.
view schema only Sicht vom Typ schema only. Diese Option wird für Oracle-Verleger nicht unterstützt. Wenn diese Option verwendet wird, müssen Sie auch die Basistabelle veröffentlichen.

[ @filter = ] 'filter' Die gespeicherte Prozedur (erstellt mit FOR REPLICATION), die zum horizontalen Filtern der Tabelle verwendet wird. filter ist nvarchar(386) mit dem Standardwert NULL. sp_articleview und sp_articlefilter müssen manuell ausgeführt werden, um die gespeicherte Prozedur anzeigen und filtern zu können. 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, die zum Erstellen der Datendatei verwendet wird, um die Momentaufnahme für diesen Artikel darzustellen. sync_object ist nvarchar(386) mit dem Standardwert NULL. Bei NULL wird sp_articleview aufgerufen, um automatisch die Ansicht zu erstellen, die zum Generieren der Ausgabedatei verwendet wird. Dies tritt auf, nachdem Spalten mit sp_articlecolumnhinzugefügt wurden. 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 beim Replizieren von Einfügungen für diesen Artikel verwendet wird. ins_cmd ist nvarchar(255) und kann einer der folgenden Werte sein.

Wert BESCHREIBUNG
NONE Es wird keine Aktion ausgeführt.
CALL sp_MSins_
table (Standard)

Oder

CALL custom_stored_procedure_name
Eine gespeicherte Prozedur wird aufgerufen, die auf dem Abonnenten ausgeführt werden soll. Um diese Replikationsmethode zu verwenden, 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_ Tabelle enthält den Namen der Zieltabelle statt _table Teil des Parameters. Wenn destination_owner angegeben wird, wird sie dem Namen der Zieltabelle vorgefertigt. Für die Tabelle ProductCategory im Besitz des Produktionsschemas auf dem Abonnenten wäre der Parameter CALL sp_MSins_ProductionProductCategory beispielsweise . Für einen Artikel in einer Peer-zu-Peer-Replikationstopologie wird _table guiD-Wert angefügt. Das Angeben custom_stored_procedure wird für Updateabonnenten nicht unterstützt.
SQL 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 beim Replizieren von Löschvorgang für diesen Artikel verwendet wird. del_cmd ist nvarchar(255) und kann einer der folgenden Werte sein.

Wert BESCHREIBUNG
NONE Es wird keine Aktion ausgeführt.
CALLsp_MSdel_
table (Standard)

Oder

CALL custom_stored_procedure_name
Eine gespeicherte Prozedur wird aufgerufen, die auf dem Abonnenten ausgeführt werden soll. Um diese Replikationsmethode zu verwenden, 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_ Tabelle enthält den Namen der Zieltabelle statt des _table Teil des Parameters. Wenn destination_owner angegeben wird, wird sie dem Namen der Zieltabelle vorgefertigt. Für die Tabelle ProductCategory im Besitz des Produktionsschemas auf dem Abonnenten wäre der Parameter CALL sp_MSdel_ProductionProductCategory beispielsweise . Für einen Artikel in einer Peer-zu-Peer-Replikationstopologie wird _table guiD-Wert angefügt. Das Angeben custom_stored_procedure wird für Updateabonnenten nicht unterstützt.
XCALL sp_MSdel_
Tabelle

Oder

XCALL custom_stored_procedure_name
Ruft eine gespeicherte Prozedur auf, die XCALL-Parameter akzeptiert. Um diese Replikationsmethode zu verwenden, 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. Die Angabe einer benutzerdefinierten gespeicherten Prozedur ist für Updateabonnenten nicht zulässig.
SQL 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 beim Replizieren von Updates für diesen Artikel verwendet wird. upd_cmd ist nvarchar(255) und kann einer der folgenden Werte sein.

Wert BESCHREIBUNG
NONE Es wird keine Aktion ausgeführt.
CALL sp_MSupd_
Tabelle

Oder

CALL custom_stored_procedure_name
Eine gespeicherte Prozedur wird aufgerufen, die auf dem Abonnenten ausgeführt werden soll. Um diese Replikationsmethode zu verwenden, 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.
MCALL sp_MSupd_
Tabelle

Oder

MCALL custom_stored_procedure_name
Ruft eine gespeicherte Prozedur auf, die MCALL-Parameter akzeptiert. Um diese Replikationsmethode zu verwenden, 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_ Tabelle enthält den Namen der Zieltabelle an Stelle des _table Teil des Parameters. Wenn destination_owner angegeben wird, wird sie dem Namen der Zieltabelle vorgefertigt. Für die Tabelle ProductCategory im Besitz des Produktionsschemas auf dem Abonnenten wäre der Parameter MCALL sp_MSupd_ProductionProductCategory beispielsweise . Für einen Artikel in einer Peer-zu-Peer-Replikationstopologie wird _table guiD-Wert angefügt. Die Angabe einer benutzerdefinierten gespeicherten Prozedur ist für Updateabonnenten nicht zulässig.
SCALL sp_MSupd_
table (Standard)

Oder

SCALL custom_stored_procedure_name
Ruft eine gespeicherte Prozedur auf, die SCALL-Parameter akzeptiert. Um diese Replikationsmethode zu verwenden, 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_ Tabelle enthält den Namen der Zieltabelle an Stelle des _table Teil des Parameters. Wenn destination_owner angegeben wird, wird sie dem Namen der Zieltabelle vorgefertigt. Für die Tabelle ProductCategory im Besitz des Produktionsschemas auf dem Abonnenten wäre der Parameter SCALL sp_MSupd_ProductionProductCategory beispielsweise . Für einen Artikel in einer Peer-zu-Peer-Replikationstopologie wird _table guiD-Wert angefügt. Die Angabe einer benutzerdefinierten gespeicherten Prozedur ist für Updateabonnenten nicht zulässig.
XCALL sp_MSupd_
Tabelle

Oder

XCALL custom_stored_procedure_name
Ruft eine gespeicherte Prozedur auf, die XCALL-Parameter akzeptiert. Um diese Replikationsmethode zu verwenden, 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. Die Angabe einer benutzerdefinierten gespeicherten Prozedur ist für Updateabonnenten nicht zulässig.
SQL 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 Updates repliziert:

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

Hinweis

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' Der Pfad und Name eines optionalen Artikelschemaskripts, das zum Erstellen des Artikels in der Abonnementdatenbank verwendet wird. creation_script ist nvarchar(255) mit dem Standardwert NULL.

[ @description = ] 'description' Ein beschreibender Eintrag für den Artikel. description ist nvarchar(255) mit dem Standardwert NULL.

[ @pre_creation_cmd = ] 'pre_creation_cmd' Gibt an, was das System tun soll, wenn beim Anwenden der Momentaufnahme für diesen Artikel ein vorhandenes Objekt mit dem gleichen Namen auf dem Abonnenten erkannt wird. pre_creation_cmd ist nvarchar(10) und kann einer der folgenden Werte sein.

Wert BESCHREIBUNG
keine Verwendet keinen Befehl.
delete Löscht Daten aus der Zieltabelle vor dem Anwenden der Momentaufnahme. 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. Wenn Sie die Einschränkungsklausel eingeben, sollten Sie das Schlüsselwort WHERE weglassen. filter_clause ist ntext und hat den Standardwert NULL. Weitere Informationen finden Sie unter Filtern von veröffentlichten Daten.

[ @schema_option = ] schema_option Eine Bitmaske der Schemagenerierungsoption für den angegebenen Artikel. schema_option ist binary(8) und kann der | (Bitweises OR) Produkt eines oder mehrerer dieser Werte:

Hinweis

Ist dieser Wert NULL, generiert das System automatisch eine gültige Schemaoption für den Artikel, abhängig von anderen Artikeleigenschaften. In der Tabelle Standardschemaoptionen in den Hinweisen wird der Wert angezeigt, der basierend auf der Kombination aus Artikeltyp und Replikationstyp ausgewählt wird.

Wert BESCHREIBUNG
0x00 Deaktiviert die Skripterstellung durch die Momentaufnahmen-Agent und verwendet creation_script.
0x01 Generiert das Objekterstellungsskript (CREATE TABLE, CREATE PROCEDURE usw.). Dies ist der Standardwert 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 Replizieren sie Zeitstempelspalten. Wenn nicht festgelegt, werden Zeitstempelspalten als binäre repliziert.
0x10 Generiert einen entsprechenden gruppierten Index. Auch wenn diese Option nicht festgelegt ist, werden Indizes im Zusammenhang mit Primärschlüsseln und unique-Einschränkungen generiert, wenn sie bereits für eine veröffentlichte Tabelle 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 für Oracle-Verleger nicht unterstützt.
0x40 Generiert entsprechende nicht gruppierte Indizes. Auch wenn diese Option nicht festgelegt ist, werden Indizes im Zusammenhang mit Primärschlüsseln und unique-Einschränkungen generiert, wenn sie bereits für eine veröffentlichte Tabelle definiert sind.
0x80 Repliziert Primärschlüsseleinschränkungen. Alle Indizes im Zusammenhang mit der Einschränkung werden ebenfalls repliziert, auch wenn Optionen 0x10 und 0x40 nicht aktiviert sind.
0x100 Repliziert Benutzertrigger für einen Tabellenartikel, wenn definiert. Wird für Oracle-Verleger 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 für Oracle-Verleger nicht unterstützt.
0x400 Repliziert CHECK-Einschränkungen. Wird für Oracle-Verleger nicht unterstützt.
0x800 Repliziert Standards. Wird für Oracle-Verleger nicht unterstützt.
0x1000 Repliziert die Sortierung auf Spaltenebene.

Hinweis: Diese Option sollte für Oracle-Verleger festgelegt werden, um Vergleiche mit Unterscheidung nach Groß-/Kleinschreibung zu ermöglichen.
0x2000 Repliziert erweiterte Eigenschaften, die dem Quellobjekt des veröffentlichten Artikels zugeordnet sind. Wird für Oracle-Verleger nicht unterstützt.
0x4000 Repliziert UNIQUE-Einschränkungen. Alle Indizes im Zusammenhang mit der Einschränkung werden ebenfalls repliziert, auch wenn Optionen 0x10 und 0x40 nicht aktiviert sind.
0x8000 Diese Option ist für SQL Server 2005 (9.x)-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 eingeführte Datentypen für große Objekte (nvarchar(max), varchar(max) und varbinary(max)) in Datentypen, die unter unterstützt SQL Server 2005 (9.x) SQL Server 2000 (8.x) werden.
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 ist. Geben Sie diese Option nicht an, wenn Sie Tabellen auf SQL Server 2005 (9.x)-Abonnenten replizieren. Das Replizieren von Tabellen mit FILESTREAM-Spalten an Abonnenten wird unabhängig SQL Server 2000 (8.x) davon, wie diese Schemaoption festgelegt ist, nicht unterstützt.

Siehe verwandte Option 0x800000000.
0x200000000 Konvertiert Datums- und Uhrzeitdatentypen (date, time, datetimeoffset und datetime2), die in eingeführt wurden, in Datentypen, die in früheren Versionen von SQL Server 2008 unterstützt SQL Server werden.
0x400000000 Repliziert die Komprimierungsoption für Daten und Indizes. Weitere Informationen finden Sie unter Data Compression.
0x800000000 Legen Sie diese Option fest, um FILESTREAM-Daten in einer eigenen Dateigruppe auf dem Abonnenten zu speichern. Wenn diese Option nicht festgelegt wird, werden FILESTREAM-Daten in der Standarddateigruppe gespeichert. Bei der Replikation werden keine Dateigruppen erstellt. Daher müssen Sie beim Festlegen dieser Option die Dateigruppe erstellen, bevor Sie die Momentaufnahme auf dem Abonnenten anwenden. Weitere Informationen zum Erstellen von Objekten vor dem Anwenden der Momentaufnahme finden Sie unter Ausführen von Skripts vor und nach dem Anwenden der Momentaufnahme.

Siehe verwandte Option 0x100000000.
0x1000000000 Konvertiert benutzerdefinierte CLR-Typen (Common Language Runtime), die größer als 8000 Byte sind, in varbinary(max), sodass Spalten vom Typ UDT auf Abonnenten repliziert werden können, auf denen ausgeführt SQL Server 2005 (9.x) wird.
0x2000000000 Konvertiert den hierarchyid-Datentyp in varbinary(max), sodass Spalten vom Typ hierarchyid auf Abonnenten repliziert werden können, auf denen ausgeführt SQL Server 2005 (9.x) wird. Weitere Informationen zur Verwendung 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 Erstellen gefilterter Indizes.
0x8000000000 Konvertiert die Geography- und geometry-Datentypen in varbinary(max), sodass Spalten dieser Typen auf Abonnenten repliziert werden können, auf denen ausgeführt SQL Server 2005 (9.x) 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 Sparsespalten.
0x40000000000 Aktivieren Sie die Skripterstellung durch den Momentaufnahme-Agent, um eine speicheroptimierte Tabelle auf dem Abonnenten zu erstellen.
0x80000000000 Konvertiert gruppierten Index für speicheroptimierte Artikel in einen nicht gruppierten Index.
0x400000000000 Repliziert alle nicht gruppierten Columnstore-Indizes für die Tabellen
0x800000000000 Repliziert alle nicht gruppierten Columnstore-Indizes für die Tabellen.
NULL Die Replikation legt schema_option auf einen Standardwert fest, dessen Wert von anderen Artikeleigenschaften abhängt. Die in den Hinweisen enthaltene Tabelle "Default Schema Options" zeigt die Standardschemaoptionen auf der Grundlage des Artikeltyps und des Replikationstyps an.

Der Standardwert für SQL Server Nichtveröffentlichungen ist 0x050D3.

Nicht alle schema_option sind für jeden Replikations- und Artikeltyp gültig. Die Tabelle Gültige Schemaoptionen im Abschnitt "Hinweise" enthält die gültigen Schemaoptionen, die basierend auf der Kombination aus Artikeltyp und Replikationstyp ausgewählt werden können.

[ @destination_owner = ] 'destination_owner' Der Name des Besitzers des Zielobjekts. destination_owner ist vom Datentyp sysname mit dem Standardwert NULL. Wenn destination_owner angegeben wird, wird der Besitzer automatisch auf der Grundlage der folgenden Regeln angegeben:

Bedingung Zielobjektbesitzer
Die Veröffentlichung generiert die Anfangsmomentaufnahme, die nur SQL Server-Abonnenten unterstützt, über das Massenkopieren im einheitlichen Modus. Der Standardwert ist der Wert source_owner.
Veröffentlicht von einem Nicht-SQL Server-Verleger. Standardmäßig wird der Besitzer der Zieldatenbank verwendet.
Die Veröffentlichung generiert die Anfangsmomentaufnahme, die Nicht-SQL Server-Abonnenten unterstützt, über das Massenkopieren im Zeichenmodus. Nicht zugewiesen.

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

[ @status = ] status Gibt an, ob der Artikel aktiv ist, sowie zusätzliche Optionen für die Propagieren von Änderungen. status ist tinyint und kann die | (Bitweises OR) Produkt eines oder mehrere dieser Werte.

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. Wird nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.

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

[ @source_owner = ] 'source_owner' Der Besitzer des Quellobjekts. source_owner ist sysname und hat den Standardwert NULL. source_owner müssen für Oracle-Verleger angegeben werden.

[ @sync_object_owner = ] 'sync_object_owner' Der Besitzer der Ansicht, die den veröffentlichten Artikel definiert. sync_object_owner ist sysname und hat den Standardwert NULL.

[ @filter_owner = ] 'filter_owner' Der Besitzer des Filters. filter_owner ist sysname und hat den Standardwert NULL.

[ @source_object = ] 'source_object' Das zu veröffentlichende Datenbankobjekt. source_object ist sysname und hat den Standardwert NULL. Wenn source_table NULL ist, source_object null sein. source_object sollte anstelle von source_table. Weitere Informationen zu den Objekttypen, die mithilfe der Momentaufnahme- oder 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 vom Typ int mit dem Standardwert NULL, und es handelt sich um einen OUTPUT-Parameter.

[ @auto_identity_range = ] 'auto_identity_range' Aktiviert und deaktiviert die automatische Behandlung des Identitätsbereichs für eine Veröffentlichung zum Zeitpunkt der Veröffentlichungsveröffentlichung. auto_identity_range ist nvarchar(5) und kann einer der folgenden Werte sein:

Wert BESCHREIBUNG
true Aktiviert die automatische Behandlung von Identitätsbereichen
false Deaktiviert die automatische Behandlung von Identitätsbereichen
NULL (Standard) Die Behandlung des Identitätsbereichs wird durch identityrangemanagementoption festgelegt.

Hinweis

auto_identity_range ist veraltet und wird nur aus Gründen der Abwärtskompatibilität bereitgestellt. Sie sollten identityrangemanagementoption verwenden, um Optionen für die Verwaltung des Identitätsbereichs anzugeben. Weitere Informationen finden Sie unter Replizieren von Identitätsspalten.

[ @pub_identity_range = ] pub_identity_rangeSteuert die Bereichsgröße am Publisher, wenn identityrangemanagementoption im Artikel auf auto oder auto_identity_range auf TRUE festgelegt ist. pub_identity_range ist bigint und hat den Standardwert NULL. Wird für Oracle-Verleger nicht 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 bigint und hat den Standardwert NULL. Wird verwendet, wenn auto_identity_range auf TRUE festgelegt ist. Wird für Oracle-Verleger nicht unterstützt.

[ @threshold = ] threshold Der Prozentwert, der steuert, wann der Verteilungs-Agent einen neuen Identitätsbereich zuweist. Wenn der Prozentsatz der im Schwellenwert angegebenen Werte verwendet wird, erstellt der Verteilungs-Agent einen neuen Identitätsbereich. threshold ist bigint, wobei der Standardwert NULL ist. Wird verwendet, wenn identityrangemanagementoption auf auto oder auto_identity_range auf TRUE festgelegt ist. Wird für Oracle-Verleger nicht unterstützt.

[ @force_invalidate_snapshot = ] force_invalidate_snapshot Bestätigt, dass die von dieser gespeicherten Prozedur ausgeführte Aktion eine vorhandene Momentaufnahme für ungültig erklären kann. force_invalidate_snapshot ist ein Bit mit dem Standardwert 0.

0 gibt an, dass das Hinzufügen eines Artikels nicht dazu führt, dass die Momentaufnahme ungültig ist. Wenn die gespeicherte Prozedur erkennt, dass die Änderungen eine neue Momentaufnahme erfordern, tritt ein Fehler auf, und es werden keine Änderungen durchgeführt.

1 gibt an, dass das Hinzufügen eines Artikels dazu führen kann, dass die Momentaufnahme ungültig ist. Wenn Abonnements vorhanden sind, für die eine neue Momentaufnahme erforderlich ist, wird die Berechtigung erteilt, dass die vorhandene Momentaufnahme als veraltet markiert und eine neue Momentaufnahme generiert wird.

[ @use_default_datatypes = ] use_default_datatypesGibt an, ob die standardmäßigen Spaltendatentypzuordnungen beim Veröffentlichen eines Artikels aus einem Oracle-Publisher verwendet werden. use_default_datatypes ist bit, wobei der Standardwert 1 ist.

1 = Die Standardzuordnungen für Artikelspalten werden verwendet. Die Standarddatentypzuordnungen können durch Ausführen von sp_getdefaultdatatypemappingangezeigt werden.

0 = benutzerdefinierte Artikelspaltenzuordnungen werden definiert, und daher wird sp_articleview nicht von sp_addarticle aufgerufen.

Wenn use_default_datatypes auf 0 festgelegt ist, müssen Sie sp_changearticlecolumndatatype einmal für jede Spaltenzuordnung ausführen, die vom Standardwert geändert wird. Nachdem alle benutzerdefinierten Spaltenzuordnungen definiert wurden, müssen Sie sp_articleviewausführen.

Hinweis

Dieser Parameter sollte nur für Oracle-Verleger verwendet werden. Wenn use_default_datatypes für eine Publisher auf 0 festgelegt SQL Server wird, wird ein Fehler generiert.

[ @identityrangemanagementoption = ] identityrangemanagementoption Gibt an, wie die Identitätsbereichsverwaltung für den Artikel behandelt wird. identityrangemanagementoption ist nvarchar(10) und kann einer der folgenden Werte sein.

Wert BESCHREIBUNG
keine 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.
Manuell 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_range nicht true ist. In einer Peer-zu-Peer-Topologie wird standardmäßig manuell verwendet (auto_identity_range wird ignoriert).

Wenn der Wert von identityrangemanagementoption NULL ist, wird aus Gründen der Abwärtskompatibilität der Wert von auto_identity_range ü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 eine nicht SQL Server Publisher an. publisher ist sysname und hat den Standardwert NULL.

Hinweis

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

[ @fire_triggers_on_snapshot = ] 'fire_triggers_on_snapshot' Ist , wenn replizierte Benutzertrigger ausgeführt werden, wenn die Anfangsmomentaufnahme angewendet wird. fire_triggers_on_snapshot ist nvarchar(5) mit dem Standardwert FALSE. TRUE bedeutet, dass Benutzertrigger für eine replizierte Tabelle ausgeführt werden, wenn die Momentaufnahme angewendet wird. Damit Trigger repliziert werden können, muss der Bitmaskenwert von schema_option den Wert 0x100 enthalten.

Rückgabecodewerte

0 (Erfolg) oder 1 (Fehler)

Bemerkungen

sp_addarticle wird bei der Momentaufnahme- 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 Sie eine solche Spalte veröffentlichen müssen, müssen Sie sp_articlecolumn ausführen, um die Spalte hinzuzufügen.

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

  • Parametrisierte Anweisungen müssen für alle logbased-Artikel angegeben werden. Sie müssen 16 in den Statuswert einschließen.

  • 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. Sie müssen den Wert manual für identityrangemanagementoption angeben.

  • Wenn eine Zeitstempelspalte in der Tabelle vorhanden ist, müssen Sie 0x08 in schema_option einschließen, um die Spalte als Zeitstempel zu replizieren.

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

Weitere Informationen finden Sie unter Peer-to-Peer Transactional Replication.

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.

Wenn vertical_partition auf TRUE festgelegt ist, sp_addarticle die Erstellung der Ansicht zurückstellen, bis sp_articleview aufgerufen wird (nachdem die letzte sp_articlecolumn hinzugefügt wurde).

Wenn die Veröffentlichung das Aktualisieren von Abonnements zulässt und die veröffentlichte Tabelle keine uniqueidentifier-Spalte enthält, fügt sp_addarticle der Tabelle automatisch eine uniqueidentifier-Spalte hinzu.

Bei der Replikation auf einen Abonnenten, der keine Instanz von SQL Server (heterogene Replikation) ist, Transact-SQL werden nur -Anweisungen für INSERT-, UPDATE- und DELETE-Befehle unterstützt.

Wenn der Protokollleser-Agent ausgeführt wird, kann das Hinzufügen eines Artikel zu einer Peer-zu-Peer-Veröffentlichung einen Deadlock zwischen dem Protokolllese-Agent und dem Prozess verursachen,der den Artikel hinzufügt. Damit Sie dieses Problem vermeiden, bevor Sie einer Peer-zu-Peer-Veröffentlichung einen Artikel hinzufügen, verwenden Sie den Replikationsmonitor, um den Protokolllese-Agent auf dem Knoten zu beenden, auf dem Sie den Artikel hinzufügen möchten. Starten Sie den Protokolllese-Agent neu, nachdem Sie den Artikel hinzugefügt haben.

Beim Festlegen @del_cmd = 'NONE' von oder kann die Weitergabe von @ins_cmd = 'NONE' UPDATE-Befehlen auch dadurch beeinträchtigt werden, dass diese Befehle nicht gesendet werden, wenn ein umgrenztes Update auftritt. (Ein begrenztes Update ist eine Art von UPDATE-Anweisung vom Verleger, die als DELETE/INSERT-Paar auf dem Abonnenten repliziert wird).

Default Schema Options

In dieser Tabelle wird der Standardwert beschrieben, der von der Replikation festgelegt wird, wenn schema_options nicht vom Benutzer angegeben wird, wobei dieser Wert vom Replikationstyp (oben dargestellt) und vom Artikeltyp (in der ersten Spalte angezeigt) abhängt.

Artikeltyp Transaktionsreplikation Momentaufnahmereplikation
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

Hinweis

Wenn eine Veröffentlichung für die Aktualisierung über eine Warteschlange aktiviert ist, wird schema_option wert 0x80 dem in der Tabelle angezeigten Standardwert hinzugefügt. Die Standardeinstellung schema_option für eine Nichtveröffentlichung SQL Server ist 0x050D3.

Valid Schema Options

In dieser Tabelle werden die zulässigen Werte von schema_option basierend auf dem Replikationstyp (oben dargestellt) und dem Artikeltyp (in der ersten Spalte dargestellt) beschrieben.

Artikeltyp Transaktionsreplikation Momentaufnahmereplikation
logbased Alle Optionen Alle Optionen bis auf 0x02
logbased manualfilter Alle Optionen Alle Optionen bis auf 0x02
logbased manualview Alle Optionen Alle Optionen bis auf 0x02
indexed view logbased Alle Optionen Alle Optionen bis auf 0x02
indexed view logbased manualfilter Alle Optionen Alle Optionen bis auf 0x02
indexed view logbased manualview Alle Optionen Alle Optionen bis auf 0x02
indexed view logbase manualboth Alle Optionen Alle Optionen bis auf 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

Hinweis

Für Veröffentlichungen mit Warteschlangenaktualisierung müssen schema_option werte 0x8000 und 0x80 aktiviert sein. Die unterstützten schema_option-Werte für Nichtveröffentlichungen SQL Server 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 db_owner festen Datenbankrolle können sp_addarticle.

Weitere Informationen

Define an Article
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)
Veröffentlichen von Daten und Datenbankobjekten