Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí na:SQL ServerAzure
SQL Managed Instance
Vytvoří článek a přidá ho do publikace. Tato uložená procedura se spustí v Publisheru v databázi publikace.
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.
falseoznačuje, že není vertikální filtrování a zveřejní všechny sloupce.truevymaž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.
0Specifikuje, ž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.1specifikuje, ž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
16do @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.
Související obsah
- Definování článku
- sys.sp_articlecolumn (Transact-SQL)
- sys.sp_articlefilter (Transact-SQL)
- sys.sp_articleview (Transact-SQL)
- sys.sp_changearticle (Transact-SQL)
- sys.sp_droparticle (Transact-SQL)
- sys.sp_helparticle (Transact-SQL)
- sys.sp_helparticlecolumns (Transact-SQL)
- Uložené procedury replikace (Transact-SQL)
- Publikování dat a databázových objektů