sys.sp_addarticle (Transact-SQL)

Platí na:SQL ServerAzureSQL Managed Instance

Vytvoří článek a přidá ho do publikace. Tato uložená procedura se spustí v Publisheru v databázi publikace.

Transact-SQL konvence syntaxe

Syntax

sys.sp_addarticle
    [ @publication = ] N'publication'
    , [ @article = ] N'article'
    [ , [ @source_table = ] N'source_table' ]
    [ , [ @destination_table = ] N'destination_table' ]
    [ , [ @vertical_partition = ] N'vertical_partition' ]
    [ , [ @type = ] N'type' ]
    [ , [ @filter = ] N'filter' ]
    [ , [ @sync_object = ] N'sync_object' ]
    [ , [ @ins_cmd = ] N'ins_cmd' ]
    [ , [ @del_cmd = ] N'del_cmd' ]
    [ , [ @upd_cmd = ] N'upd_cmd' ]
    [ , [ @creation_script = ] N'creation_script' ]
    [ , [ @description = ] N'description' ]
    [ , [ @pre_creation_cmd = ] N'pre_creation_cmd' ]
    [ , [ @filter_clause = ] N'filter_clause' ]
    [ , [ @schema_option = ] schema_option ]
    [ , [ @destination_owner = ] N'destination_owner' ]
    [ , [ @status = ] status ]
    [ , [ @source_owner = ] N'source_owner' ]
    [ , [ @sync_object_owner = ] N'sync_object_owner' ]
    [ , [ @filter_owner = ] N'filter_owner' ]
    [ , [ @source_object = ] N'source_object' ]
    [ , [ @artid = ] artid OUTPUT ]
    [ , [ @auto_identity_range = ] N'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 = ] N'identityrangemanagementoption' ]
    [ , [ @publisher = ] N'publisher' ]
    [ , [ @fire_triggers_on_snapshot = ] N'fire_triggers_on_snapshot' ]
[ ; ]

Arguments

[ @publication = ] N'publikace'

Název publikace, která článek obsahuje. Název musí být v databázi jedinečný. @publication je sysname, bez výchozího nastavení.

[ @article = ] N'článek'

Název článku. Název musí být v rámci publikace jedinečný. @article je sysname, bez výchozího nastavení.

[ @source_table = ] N'source_table'

Tento parametr byl zrušen; Použijte místo toho @source_object . @source_table je nvarchar(386), s výchozím hodnotou NULL. @source_table není podporováno u Oracle Publishers.

[ @destination_table = ] N'destination_table'

Název tabulky cílové (předplatné), pokud se liší od @source_table nebo uložené procedury. @destination_table je sysname, s výchozím .NULL Pokud je nastaveno na NULL, znamená to, že @source_table se rovná @destination_table.

[ @vertical_partition = ] N'vertical_partition'

Zapnutí a vypnutí filtrování sloupců na článku v tabulce. @vertical_partition je nchar(5), s výchozím hodnotou false.

  • false označuje, že není vertikální filtrování a zveřejní všechny sloupce.

  • true vymaže všechny sloupce kromě deklarovaného primárního klíče, sloupců s nulou bez výchozího nastavení a sloupců unikátního klíče. Sloupce se přidávají pomocí sp_articlecolumn.

[ @type = ] N'type'

Typ článku. @type je sysname s výchozím nastavením NULL, a může mít jednu z následujících hodnot.

Value Description
aggregate schema only Agregační funkce pouze se schématem.
func schema only Funkce pouze se schématem.
indexed view logbased Článek s indexovaným zobrazením založený na logu. Oracle Publishers to nepodporuje. U tohoto typu článku není nutné základní tabulku publikovat zvlášť.
indexed view logbased manualboth Článek s indexovaným zobrazením založený na logu s manuálním filtrem a manuálním zobrazením. Tato možnost vyžaduje, abyste zadali jak @sync_object , tak @filter parametry. U tohoto typu článku není nutné základní tabulku publikovat zvlášť. Oracle Publishers to nepodporuje.
indexed view logbased manualfilter Článek s indexovaným zobrazením založený na logu s manuálním filtrem. Tato možnost vyžaduje, abyste zadali jak @sync_object , tak @filter parametry. U tohoto typu článku není nutné základní tabulku publikovat zvlášť. Oracle Publishers to nepodporuje.
indexed view logbased manualview Článek s indexovaným zobrazením založený na logu s manuálním zobrazením. Tato možnost vyžaduje zadání parametru @sync_object . U tohoto typu článku není nutné základní tabulku publikovat zvlášť. Oracle Publishers to nepodporuje.
indexed view schema only Indexovaný pohled pouze se schématem. Pro tento typ článku musí být zveřejněna i základní tabulka.
logbased (výchozí) Článek založený na logu.
logbased manualboth Článek založený na záznamech s manuálním filtrem a manuálním zobrazením. Tato možnost vyžaduje, abyste zadali jak @sync_object , tak @filter parametry. Oracle Publishers to nepodporuje.
logbased manualfilter Článek založený na logu s manuálním filtrem. Tato možnost vyžaduje, abyste zadali jak @sync_object , tak @filter parametry. Oracle Publishers to nepodporuje.
logbased manualview Článek založený na logu s manuálním zobrazením. Tato možnost vyžaduje zadání parametru @sync_object . Oracle Publishers to nepodporuje.
proc exec Replikuje provádění uložené procedury všem odběratelům článku. Oracle Publishers to nepodporuje. Doporučujeme použít možnost serializable proc exec místo proc exec. Pro více informací viz sekce "Typy provádění uložených procedur" v Publikování provádění uložených procedur v transakční replikaci. Není dostupné, když je zapnuté zachycování změn dat.
proc schema only Pouze procedura se schématem. Oracle Publishers to nepodporuje.
serializable proc exec Replikuje provádění uložené procedury pouze tehdy, pokud je vykonána v kontextu serializovatelné transakce. Oracle Publishers to nepodporuje.

Procedura musí být také vykonána v rámci explicitní transakce, aby bylo možné proceduru replikovat.
view schema only Zobrazit pouze pomocí schématu. Oracle Publishers to nepodporuje. Při použití této možnosti musíte také publikovat základní tabulku.

[ @filter = ] N'filter'

Uložená procedura (vytvořená pomocí FOR REPLICATION) sloužila k horizontálnímu filtrování tabulky. @filter je nvarchar(386), s výchozím hodnotou NULL. Musíte ručně spustit sp_articleview a sp_articlefilter , abyste vytvořili uloženou proceduru zobrazení a filtru. Pokud ne NULL, procedura filtru se nevytváří (předpokládá se, že uložená procedura je vytvořena ručně).

[ @sync_object = ] N'sync_object'

Název tabulky nebo pohledu použitého k vytvoření datového souboru k reprezentaci snímku pro tento článek. @sync_object je nvarchar(386), s výchozím hodnotou NULL. Pokud NULL, sp_articleview je volán k automatickému vytvoření zobrazení použitého k vygenerování výstupního souboru. To nastává po přidání sloupců s sp_articlecolumn. Pokud ne NULL, pohled se nevytvoří (předpokládá se, že je ručně vytvořen).

[ @ins_cmd = ] N'ins_cmd'

Replikační příkaz použitý při replikaci insertů pro tento článek. @ins_cmd je nvarchar(255) a může mít jednu z následujících hodnot.

Value Description
NONE Není provedena žádná akce.
CALL sp_MSins_<table> (výchozí)

nebo

CALL custom_stored_procedure_name
Volá uloženou proceduru, která se vykoná u předplatitele. Pro použití této metody replikace použijte @schema_option k určení automatického vytvoření uložené procedury nebo vytvořte specifikovanou uloženou proceduru v cílové databázi každého odběratele článku. <custom_stored_procedure> je název uživatelsky vytvořené uložené procedury. sp_MSins_<table> obsahuje název cílové tabulky místo _table části parametru. Když je @destination_owner specifikováno, je předem přiřazeno názvu cílové tabulky. Například pro tabulku vlastněnou ProductCategoryProduction schématem u odběratele by parametr byl CALL sp_MSins_ProductionProductCategory. Pro článek v peer-to-peer replikační topologii je připojena <table> hodnota GUID. Specifikace <custom_stored_procedure> není podporována pro aktualizaci odběratelů.
SQL nebo NULL Replikuje INSERT tvrzení. Prohlášení INSERT uvádí hodnoty pro všechny sloupce publikované v článku. Tento příkaz se replikuje na insertech:

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

Pro více informací viz Transakční články – Specifikujte, jak se změny šíří.

[ @del_cmd = ] N'del_cmd'

Replikační příkaz použitý při replikaci delete pro tento článek. @del_cmd je nvarchar(255) a může mít jednu z následujících hodnot.

Value Description
NONE Není provedena žádná akce.
CALLsp_MSdel_<table> (výchozí)

nebo

CALL <custom_stored_procedure_name>
Volá uloženou proceduru, která se vykoná u předplatitele. Pro použití této metody replikace použijte @schema_option k určení automatického vytvoření uložené procedury nebo vytvořte specifikovanou uloženou proceduru v cílové databázi každého odběratele článku. <custom_stored_procedure> je název uživatelsky vytvořené uložené procedury. sp_MSdel_<table> obsahuje název cílové tabulky místo _table části parametru. Když je @destination_owner specifikováno, je předem přiřazeno názvu cílové tabulky. Například pro tabulku vlastněnou ProductCategoryProduction schématem u odběratele by parametr byl CALL sp_MSdel_ProductionProductCategory. Pro článek v peer-to-peer replikační topologii je připojena <table> hodnota GUID. Specifikace <custom_stored_procedure> není podporována pro aktualizaci odběratelů.
XCALL sp_MSdel_<table>

nebo

XCALL <custom_stored_procedure_name>
Volá uloženou proceduru, která využívá XCALL parametry stylu. Pro použití této metody replikace použijte @schema_option k určení automatického vytvoření uložené procedury nebo vytvořte specifikovanou uloženou proceduru v cílové databázi každého odběratele článku. Specifikace uživatelem vytvořené uložené procedury není povolena pro aktualizaci odběratelů.
SQL nebo NULL Replikuje DELETE tvrzení. Příkaz DELETE má všechny hodnoty sloupců primárního klíče. Tento příkaz se replikuje při delete:

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

Pro více informací viz Transakční články – Specifikujte, jak se změny šíří.

[ @upd_cmd = ] N'upd_cmd'

Typ replikačního příkazu použitý při replikaci aktualizací pro tento článek. @upd_cmd je nvarchar(255) a může mít jednu z následujících hodnot.

Value Description
NONE Není provedena žádná akce.
CALL sp_MSupd_<table>

nebo

CALL <custom_stored_procedure_name>
Volá uloženou proceduru, která se vykoná u předplatitele. Pro použití této metody replikace použijte @schema_option k určení automatického vytvoření uložené procedury nebo vytvořte specifikovanou uloženou proceduru v cílové databázi každého odběratele článku.
MCALL sp_MSupd_<table>

nebo

MCALL <custom_stored_procedure_name>
Volá uloženou proceduru, která využívá MCALL parametry stylu. Pro použití této metody replikace použijte @schema_option k určení automatického vytvoření uložené procedury nebo vytvořte specifikovanou uloženou proceduru v cílové databázi každého odběratele článku. <custom_stored_procedure> je název uživatelsky vytvořené uložené procedury. sp_MSupd_<table> obsahuje název cílové tabulky místo <table> části parametru. Když je @destination_owner specifikováno, je předem přiřazeno názvu cílové tabulky. Například pro tabulku vlastněnou ProductCategoryProduction schématem u odběratele by parametr byl MCALL sp_MSupd_ProductionProductCategory. Pro článek v peer-to-peer replikační topologii je připojena <table> hodnota GUID. Specifikace uživatelem vytvořené uložené procedury není povolena pro aktualizaci odběratelů.
SCALL sp_MSupd_<table> (výchozí)

nebo

SCALL <custom_stored_procedure_name>
Volá uloženou proceduru, která využívá SCALL parametry stylu. Pro použití této metody replikace použijte @schema_option k určení automatického vytvoření uložené procedury nebo vytvořte specifikovanou uloženou proceduru v cílové databázi každého odběratele článku. <custom_stored_procedure> je název uživatelsky vytvořené uložené procedury. sp_MSupd_<table> obsahuje název cílové tabulky místo _table části parametru. Když je @destination_owner specifikováno, je předem přiřazeno názvu cílové tabulky. Například pro tabulku vlastněnou ProductCategoryProduction schématem u odběratele by parametr byl SCALL sp_MSupd_ProductionProductCategory. Pro článek v peer-to-peer replikační topologii je _table připojena hodnota GUID. Specifikace uživatelem vytvořené uložené procedury není povolena pro aktualizaci odběratelů.
XCALL sp_MSupd_<table>

nebo

XCALL <custom_stored_procedure_name>
Volá uloženou proceduru, která využívá XCALL parametry stylu. Pro použití této metody replikace použijte @schema_option k určení automatického vytvoření uložené procedury nebo vytvořte specifikovanou uloženou proceduru v cílové databázi každého odběratele článku. Specifikace uživatelem vytvořené uložené procedury není povolena pro aktualizaci odběratelů.
SQL nebo NULL Replikuje UPDATE tvrzení. Příkaz UPDATE je uveden u všech sloupců a sloupců primárního klíče. Tento příkaz se replikuje při aktualizacích:

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

Note

Syntaxe pro CALL, MCALL, SCALL, a XCALL mění množství dat přenášených k odběrateli. Syntaxe CALL předává všechny hodnoty pro všechny vložené a smazané sloupce. Syntaxe SCALL předává hodnoty pouze pro ovlivněné sloupce. Syntaxe XCALL předává hodnoty pro všechny sloupce, ať už změněné nebo ne, včetně předchozí hodnoty sloupce. Pro více informací viz Transakční články – Specifikujte, jak se změny šíří.

[ @creation_script = ] N'creation_script'

Cesta a název volitelné skripty schématu článků použitého k vytvoření článku v databázi předplatného. @creation_script je nvarchar(255), s výchozím hodnotou NULL.

[ @description = ] N'popis"

Popisný příspěvek k článku. @description je nvarchar(255), s výchozím hodnotou .NULL

[ @pre_creation_cmd = ] N'pre_creation_cmd'

Specifikuje, co by měl systém udělat, pokud při aplikaci snapshotu pro tento článek detekuje existující objekt stejného jména u odběratele. @pre_creation_cmd je nvarchar(10) a může mít jednu z následujících hodnot.

Value Description
none Nepoužívá žádný příkaz.
delete Smaže data z cílové tabulky před aplikací snapshotu. Když je článek horizontálně filtrován, jsou smazána pouze data ve sloupcích specifikovaných klauzulí filtru. Není podporováno u Oracle Publishers, pokud je definován horizontální filtr.
drop (výchozí) Upustí tabulku cíle.
truncate Zkracuje tabulku cíle. Není platné pro předplatitele ODBC nebo OLE DB.

[ @filter_clause = ] N'filter_clause'

Klauzule o omezení (KDE), která definuje horizontální filtr. Při zadávání klauzule omezení vynechte klíčové slovo KDE. @filter_clause je nvarchar(max), s výchozím hodnotou NULL. Další informace najdete v tématu Filtrování publikovaných dat.

[ @schema_option = ] schema_option

Bitmaska možnosti generování schématu pro daný článek. @schema_option je varbinární(8), s výchozím , NULLa může být | (BITOVĚ OR) součin jedné nebo více těchto hodnot:

Note

Pokud je tato hodnota , NULLsystém automaticky vygeneruje platnou možnost schématu pro článek v závislosti na ostatních vlastnostech článku. Výchozí možnosti schématu ukazují hodnotu, která bude zvolena na základě kombinace typu článku a typu replikace.

Value Description
0x00 Vypíná skriptování Snapshot Agent a používá @creation_script.
0x01 Generuje skript pro tvorbu objektů (CREATE TABLE, CREATE PROCEDURE, a tak dále). Tato hodnota je výchozí pro články uložených procedur.
0x02 Generuje uložené procedury, které propagují změny pro článek, pokud jsou definovány.
0x04 Sloupce identity jsou skriptovány pomocí této IDENTITY vlastnosti.
0x08 Replikujte sloupce časových razítek . Pokud nejsou nastaveny, sloupce časových razítek se replikují jako binární.
0x10 Generuje odpovídající shlukovaný index. I když tato možnost není nastavena, indexy související s primárními klíči a unikátními omezeními jsou generovány, pokud jsou již definovány v publikované tabulce.
0x20 1 Převádí uživatelsky definované datové typy (UDT) na základní datové typy u odběratele. Tuto možnost nelze použít, pokud je na sloupci UDT kontrolováno nebo DEFAULT omezení, pokud je sloupec UDT součástí primárního klíče, nebo pokud vypočítaný sloupec odkazuje na sloupec UDT.
0x40 Generuje odpovídající neshlukované indexy. I když tato možnost není nastavena, indexy související s primárními klíči a unikátními omezeními jsou generovány, pokud jsou již definovány v publikované tabulce.
0x80 Replikuje primární klíčová omezení. Jakékoliv indexy související s omezením jsou také replikovány, i když nejsou povoleny volby 0x10 a 0x40 nejsou povoleny.
0x100 1 Replikuje uživatelské triggery na článku tabulky, pokud jsou definovány.
0x200 1 Replikuje omezení cizích klíčů. Pokud referenční tabulka není součástí publikace, všechna omezení cizích klíčů v publikované tabulce nejsou replikována.
0x400 1 Replikuje kontrolní omezení.
0x800 1 Replikuje výchozí nastavení.
0x1000 Replikuje kolaci na úrovni sloupců.

Poznámka: Tato možnost by měla být pro Oracle Publishers nastavena, aby bylo možné srovnávat podle velikosti písmen.
0x2000 1 Replikuje rozšířené vlastnosti spojené s publikovaným zdrojovým objektem článku.
0x4000 Replikuje UNIKÁTNÍ omezení. Jakékoliv indexy související s omezením jsou také replikovány, i když nejsou povoleny volby 0x10 a 0x40 nejsou povoleny.
0x8000 Tato možnost není platná pro vydavatele SQL Server 2005 (9.x).
0x10000 Replikuje CHECK omezení jako NE PRO REPLIKACI, aby tato omezení nebyla vynucována během synchronizace.
0x20000 Replikuje omezení CIZÍHO KLÍČE jako NE PRO REPLIKACI, aby tato omezení nebyla vynucována během synchronizace.
0x40000 Replikuje soubory spojené s rozdělenou tabulkou nebo indexem.
0x80000 Replikuje schéma rozdělení pro rozdělenou tabulku.
0x100000 Replikuje schéma rozdělení pro rozdělený index.
0x200000 Replikuje tabulkové statistiky.
0x400000 Výchozí vazby.
0x800000 Pravidlová svazování.
0x1000000 Celý text rejstříku.
0x2000000 XML schémata kolekce vázané na sloupce xml se nereplikují.
0x4000000 Replikuje indexy na XML sloupcích.
0x8000000 Vytvořte všechna schémata, která nejsou na předplatiteli přítomna.
0x10000000 Převádí sloupce xml na ntext na předplatitele.
0x20000000 Převádí velké datové typy objektů (nvarchar(max),varchar(max) a varbinary(max)), které byly zavedeny v SQL Server 2005 (9.x), na datové typy podporované v SQL Server 2000 (8.x).
0x40000000 Replikujte oprávnění.
0x80000000 Snažte se vyřadit závislosti na objektech, které nejsou součástí publikace.
0x100000000 Použijte tuto možnost k replikaci atributu FILESTREAM, pokud je specifikován ve sloupcích varbinary(max ). Tuto možnost nespecifikujte, pokud replikujete tabulky na předplatitele SQL Server 2005 (9.x). Replikace tabulek obsahujících sloupce FILESTREAM na předplatitele SQL Server 2000 (8.x) není podporována, bez ohledu na to, jak je tato možnost schématu nastavena.

Viz související možnost 0x800000000.
0x200000000 Převádí datové a časové typy (datum, čas, datetimeoffset a datetime2) zavedené v SQL Server 2008 (10.0.x) na datové typy podporované v dřívějších verzích SQL Server.
0x400000000 Replikuje možnost komprese pro data a indexy. Další informace najdete v tématu Komprese dat.
0x800000000 Nastavte tuto možnost pro ukládání dat FILESTREAM do vlastní skupiny souborů u Subscriber. Pokud tato možnost není nastavena, data FILESTREAM jsou uložena ve výchozí skupině souborů. Replikace nevytváří skupiny souborů; pokud tedy nastavíte tuto možnost, musíte vytvořit skupinu souborů před aplikací snapshotu na odběratele. Pro více informací o tom, jak vytvořit objekty před aplikací snapshotu, viz Execute Scripts Before and After the Snapshot Is Applied.

Viz související možnost 0x100000000.
0x1000000000 Převádí uživatelsky definované typy (UDT) v běžném běžném jazyce (CLR) větší než 8000 bajtů na varbinární (max), aby sloupce typu UDT mohly být replikovány na předplatitele, kteří běží na SQL Server 2005 (9.x).
0x2000000000 Převádí datový typ hierarchyid na varbinary(max), aby sloupce typu hierarchyid mohly být replikovány na předplatitele, kteří běží na SQL Server 2005 (9.x). Pro více informací o tom, jak používat sloupce hierarchyid v replikovaných tabulkách, viz hierarchyid.
0x4000000000 Replikuje všechny filtrované indexy v tabulce. Další informace o filtrovaných indexech naleznete v tématu Vytvoření filtrovaných indexů.
0x8000000000 Převádí geografické a geometrické datové typy do varbinary(max), aby sloupce těchto typů mohly být replikovány pro předplatitele, kteří běží na SQL Server 2005 (9.x).
0x10000000000 Replikuje indexy na sloupcích typu geografie a geometrie.
0x20000000000 Replikuje atribut SPARSE pro sloupce. Pro více informací o tomto atributu viz Použít řídké sloupce.
0x40000000000 Povolte skriptování snapshot agentem pro vytvoření tabulky optimalizované pro paměť na odběrateli.
0x80000000000 Převádí shlukovaný index na neclusterovaný index pro články optimalizované pro paměť.
0x400000000000 Replikuje libovolné indexy neclusterovaných sloupcových úložků v tabulce (tabulkách)
0x800000000000 Replikuje libovolné filtrované indexy neclusterovaných sloupcových úložišť na tabulce(s).
NULL Replikace automaticky nastaví @schema_option na výchozí hodnotu, jejíž hodnota závisí na vlastnostech ostatních článků. Tabulka "Výchozí možnosti schématu" v sekci Poznámky ukazuje výchozí možnosti schématu založené na typu článku a typu replikace.

Výchozí pro publikace mimo SQL Server je 0x050D3.

1 Není podporováno pro Oracle Publishers.

Ne všechny hodnoty @schema_option platí pro každý typ replikace a typu článku. Tabulka Valid Schema Options v sekci Poznámky ukazuje platné možnosti schématu, které lze zvolit na základě kombinace typu článku a typu replikace.

[ @destination_owner = ] N'destination_owner'

Jméno vlastníka cílového objektu. @destination_owner je sysname s výchozím nastavením NULL. Pokud @destination_owner není specifikováno, vlastník je automaticky určen na základě následujících pravidel:

Condition Vlastník cílového objektu
Publikace používá hromadnou kopii v nativním režimu k vytvoření počátečního snímku, která podporuje pouze SQL Server Subscribers. Výchozí hodnota je @source_owner.
Publikováno z ne-SQL Server Publisher. Výchozí je vlastník cílové databáze.
Publikace používá hromadnou kopii v režimu znaků k vytvoření počátečního snímku, což podporuje ne-SQL Server Subscribers. Nepřiřazen.

Pro podporu ne-SQL Server předplatitelů musí být @destination_owner .NULL

[ @status = ] stav

Specifikuje, zda je článek aktivní, a další možnosti, jak se změny šíří. @status je tinyint a může být | (BITOVĚ OR) produkt jedné nebo více těchto hodnot.

Value Description
1 Článek je aktivní.
8 Zahrnuje název sloupce ve INSERT výkazech.
16 (výchozí) Používá parametrizované příkazy.
24 Zahrnuje název sloupce ve INSERT výkazech a používá parametrizované příkazy.
64 Určeno pouze pro informační účely. Není podporováno. Budoucí kompatibilita není zaručena.

Například aktivní článek používající parametrizované příkazy by měl hodnotu v 17 tomto sloupci. Hodnota znamená 0 , že článek je neaktivní a nejsou definovány žádné další vlastnosti.

[ @source_owner = ] N'source_owner'

Vlastník zdrojového objektu. @source_owner je sysname s výchozím nastavením NULL. @source_owner musí být specifikováno pro Oracle Publishers.

[ @sync_object_owner = ] N'sync_object_owner'

Vlastník názoru, který definuje publikovaný článek. @sync_object_owner je sysname s výchozím nastavením NULL.

[ @filter_owner = ] N'filter_owner'

Majitel filtru. @filter_owner je sysname, s výchozím nastavením NULL.

[ @source_object = ] N'source_object'

Objekt databáze, který má být publikován. @source_object je sysname s výchozím nastavením NULL. Pokud @source_table je NULL, @source_object nemůže být NULL. @source_object by se měl používat místo @source_table. Pro více informací o typech objektů, které lze publikovat pomocí snapshotu nebo transakční replikace, viz Publish Data and Database Objects.

[ @artid = ] artid OUTPUT

Identifikace článku nového článku. @artid je OUTPUT parametr typu int.

[ @auto_identity_range = ] N'auto_identity_range'

Umožňuje a zapíná automatické zpracování rozsahu identit na publikaci v době jejího vytvoření. @auto_identity_range je nvarchar(5) a může mít jednu z následujících hodnot:

Value Description
true Umožňuje automatické zpracování rozsahu identit
false Vypíná automatické zpracování rozsahu identit
NULL (výchozí) Zpracování rozsahu identit je nastaveno @identityrangemanagementoption.

Note

@auto_identity_range je již zastaralý a je určen pouze pro zpětnou kompatibilitu. Měli byste @identityrangemanagementoption použít pro určení možností správy rozsahu identity. Další informace najdete v tématu Replikace sloupců identit.

[ @pub_identity_range = ] pub_identity_range

Ovládá velikost rozsahu v Publisher, pokud má článek @identityrangemanagementoption nastaven na auto nebo @auto_identity_range na true. @pub_identity_range je bigint, s výchozím hodnotou NULL. @pub_identity_range není podporováno u Oracle Publishers.

[ @identity_range = ] identity_range

Ovládá velikost rozsahu u odběratele, pokud má článek @identityrangemanagementoption nastaven na auto nebo @auto_identity_range na true. @identity_range je bigint, s výchozím hodnotou NULL. Používá se, když je @auto_identity_range nastaveno na true. @identity_range není podporován u Oracle Publishers.

[ @threshold = ] práh

Procentuální hodnota, která určuje, kdy Distribution Agent přiřadí nový rozsah identity. Když je použito procento hodnot uvedené v @threshold, Distribution Agent vytvoří nový identitní rozsah. @threshold je int, s výchozím nastavením NULL. Používá se, když je @identityrangemanagementoption nastaveno na auto nebo @auto_identity_range na true. @threshold není podporováno u Oracle Publishers.

[ @force_invalidate_snapshot = ] force_invalidate_snapshot

Uznává, že akce provedená touto uloženou procedurou může zneplatnit existující snapshot. @force_invalidate_snapshot je bit s výchozím nastavením 0.

  • 0 Specifikuje, že přidání článku nezpůsobí, že snapshot bude neplatný. Pokud uložená procedura zjistí, že změna vyžaduje nový snapshot, dojde k chybě a žádné změny nejsou provedeny.

  • 1 specifikuje, že přidání článku může způsobit, že snapshot bude neplatný, a pokud existují předplatné, které vyžaduje nový snapshot, dává povolení označit stávající snapshot jako zastaralý a vytvořit nový snapshot.

[ @use_default_datatypes = ] use_default_datatypes

Zda jsou výchozí mapování datových typů sloupců použito při publikování článku z Oracle Publisher. @use_default_datatypes je bit, s výchozím nastavením 1.

  • 1 = používají se výchozí mapování sloupců článků. Výchozí mapování datových typů lze zobrazit vykonáním sp_getdefaultdatatypemapping.

  • 0= jsou definovány vlastní sloupcové mapování článku, a proto sp_articleview není voláno .sp_addarticle

Když je @use_default_datatypes nastaveno na 0, musíte sp_changearticlecolumndatatype jednou provést pro každou změnu ve sloupcovém mapování oproti výchozímu. Po definování všech vlastních mapování sloupců musíte sp_articleview spustit.

Note

Tento parametr by měl být používán pouze pro Oracle Publishers. Nastavení @use_default_datatypes na 0 SQL Server Publisher generuje chybu.

[ @identityrangemanagementoption = ] N'identityrangemanagementoption'

Specifikuje, jak je v článku řešena správa rozsahu identity. @identityrangemanagementoption je nvarchar(10) a může mít jednu z následujících hodnot.

Value Description
none Replikace neprovádí explicitní správu rozsahu identity. Tato možnost je doporučena pouze pro zpětnou kompatibilitu s dřívějšími verzemi SQL Server. Není povoleno replikace mezi uživateli.
manual Označí sloupec identity pomocí NOT FOR REPLICATION, aby umožnil ruční zpracování rozsahu identity.
auto Specifikuje automatickou správu rozsahů identit.
NULL (výchozí) Výchozí je , none když hodnota @auto_identity_range není true. Výchozí je v manual peer-to-peer topologii (@auto_identity_range je ignorován).

Pro zpětnou kompatibilitu, když hodnota @identityrangemanagementoption je NULL, se kontroluje hodnota @auto_identity_range . Pokud však hodnota @identityrangemanagementoption není NULL, pak se hodnota @auto_identity_range ignoruje.

Další informace najdete v tématu Replikace sloupců identit.

[ @publisher = ] N'publisher'

Specifikuje vydavatele mimo SQL Server. @publisher je sysname s výchozím nastavením NULL.

@publisher by se nemělo používat při přidávání článku do SQL Server Publisher.

[ @fire_triggers_on_snapshot = ] N'fire_triggers_on_snapshot'

Pokud jsou při aplikaci počátečního snímku vykonány replikované uživatelské spouštěče. @fire_triggers_on_snapshot je nvarchar(5), s výchozím hodnotou false. true znamená, že uživatelské triggery na replikované tabulce se spustí při aplikaci snapshotu. Aby bylo možné spouštěče replikovat, musí bitová maska @schema_option obsahovat hodnotu 0x100.

Hodnoty návratového kódu

0 (úspěch) nebo 1 (selhání).

Remarks

sp_addarticle se používá při replikaci snapshotů nebo transakční replikaci.

Ve výchozím nastavení replikace nepublikuje žádné sloupce ve zdrojové tabulce, pokud typ dat sloupců není replikací podporován. Pokud potřebujete takový sloupec publikovat, musíte provést sp_articlecolumn pro přidání sloupce.

Při přidávání článku do publikace, která podporuje peer-to-peer transakční replikaci, platí následující omezení:

  • Parametrizované příkazy musí být specifikovány pro všechny články založené na logu. Musíte zahrnout 16 do @status hodnoty.

  • Název a vlastník cílové tabulky musí odpovídat zdrojové tabulce.

  • Článek nelze filtrovat horizontálně ani vertikálně.

  • Automatické řízení rozsahu identity není podporováno. Musíte zadat hodnotu manuálu pro @identityrangemanagementoption.

  • Pokud v tabulce existuje sloupec časového razítka , musíte 0x08 zahrnout do @schema_option , abyste sloupec replikovali jako časové razítko.

  • Hodnota SQL, @upd_cmd a @del_cmd nelze určit.

Pro více informací viz Peer-to-Peer – Transakční replikace.

Když publikujete objekty, jejich definice jsou zkopírovány pro Subscribers. Pokud publikujete databázový objekt, který závisí na jednom nebo více dalších objektech, musíte publikovat všechny odkazované objekty. Například pokud publikujete pohled, který závisí na tabulce, musíte publikovat i tuto tabulku.

Pokud je @vertical_partition nastaveno na true, odloží vytvoření pohledu, sp_addarticle dokud není sp_articleview vyvolán (po přičtení posledního sp_articlecolumn ).

Pokud publikace umožňuje aktualizaci odběrů a publikovaná tabulka nemá sloupec sp_addarticle, automaticky se do tabulky přidá sloupec uniqueidentifier.

Při replikaci na odběratele, který není instancí SQL Server (heterogenní replikace), jsou podporovány pouze Transact-SQL příkazy pro INSERT, UPDATE, a DELETE příkazy.

Když běží agent čtečky logů, přidání článku do peer-to-peer publikace může způsobit patovou situaci mezi agentem čtečky logů a procesem, který článek přidává. Aby se tomuto problému předešlo, před přidáním článku do peer-to-peer publikace použijte Replikační monitor k zastavení logreader agenta na uzlu, kam článek přidáváte. Po přidání článku restartujte agenta čtečky logů.

Při nastavení @del_cmd na nebo NONE@ins_cmd na NONE, může být šíření příkazů UPDATE ovlivněno také tím, že se tyto příkazy neodesílají při omezené aktualizaci. (Omezená aktualizace je typ příkazu UPDATE od vydavatele, který se replikuje jako DELETE/INSERT pár na předplatitele.)

Výchozí možnosti schématu

Tato tabulka popisuje výchozí hodnotu nastavenou replikací, pokud @schema_options uživatel nespecifikuje, přičemž tato hodnota závisí na typu replikace (zobrazeném nahoře) a typu článku (zobrazeném v prvním sloupci).

Typ článku Transakční replikace Replikace snímků
Pouze agregované schéma 0x01 0x01
Pouze schéma FUC 0x01 0x01
Pouze schéma indexovaného zobrazení 0x01 0x01
Indexovaný pohled založený na logu 0x30F3 0x3071
Indexed View Logbase Manual – oba 0x30F3 0x3071
Indexovaný pohled založený na logu manuálním filtrem 0x30F3 0x3071
Indexovaný pohled založený na logu manuální pohled 0x30F3 0x3071
logbased 0x30F3 0x3071
Logbased manualfilter 0x30F3 0x3071
Logbased manualview 0x30F3 0x3071
proc exec 0x01 0x01
Pouze schéma proc 0x01 0x01
Serializable proc exec 0x01 0x01
Zobrazit pouze schéma 0x01 0x01

Note

Pokud je publikace povolena pro frontové aktualizace, k výchozí hodnotě uvedené v tabulce se přidá hodnota 0x80. Výchozí @schema_option pro ne-SQL Server publikaci je 0x050D3.

Platné možnosti schématu

Tato tabulka popisuje přípustné hodnoty @schema_option na základě typu replikace (zobrazeného nahoře) a typu článku (uvedeného v prvním sloupci).

Typ článku Transakční replikace Replikace snímků
logbased Všechny možnosti Všechny možnosti kromě 0x02
Logbased manualfilter Všechny možnosti Všechny možnosti kromě 0x02
Logbased manualview Všechny možnosti Všechny možnosti kromě 0x02
Indexovaný pohled založený na logu Všechny možnosti Všechny možnosti kromě 0x02
Indexovaný pohled založený na logu manuálním filtrem Všechny možnosti Všechny možnosti kromě 0x02
Indexovaný pohled založený na logu manuální pohled Všechny možnosti Všechny možnosti kromě 0x02
Indexed View Logbase Manual – oba Všechny možnosti Všechny možnosti kromě 0x02
proc exec 0x01, 0x20, , 0x20000x400000, 0x800000, , 0x20000000x8000000, 0x10000000, , 0x20000000, , 0x40000000a0x80000000 0x01, 0x20, , 0x20000x400000, 0x800000, , 0x20000000x8000000, 0x10000000, , 0x20000000, , 0x40000000a0x80000000
Serializable proc exec 0x01, 0x20, , 0x20000x400000, 0x800000, , 0x20000000x8000000, 0x10000000, , 0x20000000, , 0x40000000a0x80000000 0x01, 0x20, , 0x20000x400000, 0x800000, , 0x20000000x8000000, 0x10000000, , 0x20000000, , 0x40000000a0x80000000
Pouze schéma proc 0x01, 0x20, , 0x20000x400000, 0x800000, , 0x20000000x8000000, 0x10000000, , 0x20000000, , 0x40000000a0x80000000 0x01, 0x20, , 0x20000x400000, 0x800000, , 0x20000000x8000000, 0x10000000, , 0x20000000, , 0x40000000a0x80000000
Zobrazit pouze schéma 0x01, 0x010, 0x020, 0x040, 0x0100, 0x2000, 0x40000, 0x100000, 0x200000, 0x400000, 0x800000, 0x2000000, 0x8000000, 0x40000000, a 0x80000000 0x01, 0x010, 0x020, 0x040, 0x0100, 0x2000, 0x40000, 0x100000, 0x200000, 0x400000, 0x800000, 0x2000000, 0x8000000, 0x40000000, a 0x80000000
Pouze schéma FUC 0x01, 0x20, , 0x20000x400000, 0x800000, , 0x20000000x8000000, 0x10000000, , 0x20000000, , 0x40000000a0x80000000 0x01, 0x20, , 0x20000x400000, 0x800000, , 0x20000000x8000000, 0x10000000, , 0x20000000, , 0x40000000a0x80000000
Pouze schéma indexovaného zobrazení 0x01, 0x010, 0x020, 0x040, 0x0100, 0x2000, 0x40000, 0x100000, 0x200000, 0x400000, 0x800000, 0x2000000, 0x8000000, 0x40000000, a 0x80000000 0x01, 0x010, 0x020, 0x040, 0x0100, 0x2000, 0x40000, 0x100000, 0x200000, 0x400000, 0x800000, 0x2000000, 0x8000000, 0x40000000, a 0x80000000

Note

Pro aktualizaci publikací ve frontě musí být hodnoty 0x8000 a 0x80 povoleny. Hodnoty podporovaných @schema_option pro ne-SQL Server publikace jsou: 0x01, 0x02, 0x10, 0x40, , 0x80, 0x1000, a 0x40000X8000.

Příklady

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

Povolení

Pouze členové role pevného serveru správce systému nebo role pevné databáze db_owner mohou vykonávat sp_addarticle.