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.
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
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 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:Hinweis: 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.
Hinweis: 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.
Hinweis: 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.Hinweis: 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 |
Hinweis: |
---|
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 |
Hinweis: |
---|
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 |
|
05. Dezember 2005 |
|