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
Mění vlastnosti článku v transakční nebo momentkové publikaci. Tato uložená procedura se spustí v Publisheru v databázi publikace.
Syntax
sys.sp_changearticle
[ [ @publication = ] N'publication' ]
[ , [ @article = ] N'article' ]
[ , [ @property = ] N'property' ]
[ , [ @value = ] N'value' ]
[ , [ @force_invalidate_snapshot = ] force_invalidate_snapshot ]
[ , [ @force_reinit_subscription = ] force_reinit_subscription ]
[ , [ @publisher = ] N'publisher' ]
[ ; ]
Arguments
[ @publication = ] N'publikace'
Název publikace, která článek obsahuje.
@publication je sysname s výchozím nastavením NULL.
[ @article = ] N'článek'
Název článku, jehož vlastnictví má být změněno.
@article je sysname s výchozím nastavením NULL.
[ @property = ] N'property'
Vlastnost článku ke změně.
@property je nvarchar(100), s výchozím hodnotou NULL.
[ @value = ] N'value'
Nová hodnota vlastnosti článku.
@value je nvarchar(255) s výchozí hodnotou NULL.
Tato tabulka popisuje vlastnosti článků a hodnoty těchto vlastností.
| Vlastnictví | Hodnoty | Description |
|---|---|---|
creation_script |
Cesta a název skriptu schématu článku používaného k vytváření cílových tabulek. Výchozí hodnota je NULL. |
|
del_cmd |
DELETE prohlášení k vykonání; jinak je to sestaveno z logu. |
|
description |
Nový popisný záznam článku. | |
dest_object |
Poskytuje se zpětná kompatibilita. Použijte dest_table. |
|
dest_table |
Nová tabulka destinací. | |
destination_owner |
Jméno vlastníka cílového objektu. | |
filter |
Nový uložený postup pro filtrování tabulky (horizontální filtrování). Výchozí hodnota je NULL. Nelze to změnit pro publikace v peer-to-peer replikaci. |
|
fire_triggers_on_snapshot |
true |
Replikované uživatelské spouštěče se spouštějí při aplikaci počátečního snímku. Poznámka: Pro replikaci spouštěčů musí hodnota bitové masky obsahovat schema_option hodnotu 0x100. |
false |
Replikované uživatelské triggery se nespouštějí při aplikaci počátečního snapshotu. | |
identity_range |
Ovládá velikost přiřazených rozsahů identit přiřazených předplatitelům. Není podporováno pro peer-to-peer replikaci. | |
ins_cmd |
INSERT prohlášení k vykonání; jinak je to sestaveno z logu. |
|
pre_creation_cmd |
Příkaz pro předvytvoření, který může před aplikací synchronizace odstranit, smazat nebo zkrátit cílovou tabulku. | |
none |
Nepoužívá žádný příkaz. | |
drop |
Upustí tabulku cíle. | |
delete |
Smaže tabulku cíle. | |
truncate |
Zkracuje tabulku cíle. | |
pub_identity_range |
Ovládá velikost přiřazených rozsahů identit přiřazených předplatitelům. Není podporováno pro peer-to-peer replikaci. | |
schema_option |
Specifikuje bitmapu možnosti generování schématu pro daný článek.
schema_optionje binární(8). Další informace najdete v části Poznámky. |
|
0x00 |
Vypíná skriptování Snapshot Agent. | |
0x01 |
Generuje tvorbu objektu (CREATE TABLE, CREATE PROCEDURE, a tak dále). |
|
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. | |
0x20 |
Převádí uživatelsky definované datové typy (UDT) na základní datové typy u odběratele. Tuto možnost nelze použít, pokud existuje omezení CHECK or DEFAULT na sloupec UDT, pokud je sloupec UDT součástí primárního klíče, nebo pokud vypočítaný sloupec odkazuje na sloupec UDT. Oracle Publishers to nepodporuje. |
|
0x40 |
Generuje odpovídající neshlukované indexy. | |
0x80 |
Zahrnuje deklarovanou referenční integritu na primárních klíčích. | |
0x100 |
Replikuje uživatelské triggery na článku tabulky, pokud jsou definovány. | |
0x200 |
Replikuje FOREIGN KEY omezení. Pokud referenční tabulka není součástí publikace, všechna FOREIGN KEY omezení publikované tabulky nejsou replikována. |
|
0x400 |
Replikuje CHECK omezení. |
|
0x800 |
Replikuje výchozí nastavení. | |
0x1000 |
Replikuje kolaci na úrovni sloupců. | |
0x2000 |
Replikuje rozšířené vlastnosti spojené s publikovaným zdrojovým objektem článku. | |
0x4000 |
Replikuje unikátní klíče, pokud jsou definovány v článku tabulky. | |
0x8000 |
Replikuje primární klíč a jedinečné klíče na článku tabulky jako omezení pomocí ALTER TABLE příkazů.Poznámka: Tato možnost je zastaralá. Použijte 0x80 a 0x4000 místo toho. |
|
0x10000 |
Replikuje CHECK omezení tak, NOT FOR REPLICATION aby nebyla během synchronizace vynucována. |
|
0x20000 |
Replikuje FOREIGN KEY omezení tak, NOT FOR REPLICATION aby nebyla během synchronizace vynucována. |
|
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), které byly zavedeny 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 jazyce (CLR) větší než 8 000 bajtů na varbinary(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 reference metody typu 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 SPARSE atribut 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ěť. | |
status |
Specifikuje nový stav nemovitosti. | |
dts horizontal partitions |
Určeno pouze pro informační účely. Není podporováno. Budoucí kompatibilita není zaručena. | |
include column names |
Názvy sloupců jsou zahrnuty v replikovaném INSERT příkazu. |
|
no column names |
Názvy sloupců nejsou zahrnuty v replikovaném příkazu INSERT . |
|
no dts horizontal partitions |
Horizontální oddíl článku není definován transformovatelným odběrem. | |
none |
Vymaže všechny možnosti stavů v tabulce sysarticles a označí článek jako neaktivní. | |
parameters |
Změny jsou předávány předplatiteli pomocí parametrizovaných příkazů. Toto je výchozí nastavení pro nový článek. | |
string literals |
Změny jsou propagovány na odběratele pomocí literálních hodnot řetězce. | |
sync_object |
Název tabulky nebo pohledu použitého k vytvoření synchronizačního výstupního souboru. Výchozí hodnota je NULL. Oracle Publishers to nepodporuje. |
|
tablespace |
Identifikuje prostor tabulky používaný logovací tabulkou pro článek publikovaný z databáze Oracle. Další informace naleznete v tématu Správa oracle Tablespaces. | |
threshold |
Procentuální hodnota, která určuje, kdy Distribution Agent přiřadí nový rozsah identity. Není podporováno pro peer-to-peer replikaci. | |
type |
Oracle Publishers to nepodporuje. | |
logbased |
Č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 také nastavili sync_object vlastnosti a filter . Oracle Publishers to nepodporuje. |
|
logbased manualfilter |
Článek založený na logu s manuálním filtrem. Tato možnost vyžaduje, abyste také nastavili sync_object vlastnosti a filter . Oracle Publishers to nepodporuje. |
|
logbased manualview |
Článek založený na logu s manuálním zobrazením. Tato možnost vyžaduje, abyste také nastavili nemovitost.sync_object Oracle Publishers to nepodporuje. |
|
indexed viewlogbased |
Č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 viewlogbased 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 také nastavili sync_object vlastnosti a filter . U tohoto typu článku není nutné základní tabulku publikovat zvlášť. Oracle Publishers to nepodporuje. |
|
indexed viewlogbased manualfilter |
Článek s indexovaným zobrazením založený na logu s manuálním filtrem. Tato možnost vyžaduje, abyste také nastavili sync_object vlastnosti a filter . U tohoto typu článku není nutné základní tabulku publikovat zvlášť. Oracle Publishers to nepodporuje. |
|
indexed viewlogbased manualview |
Článek s indexovaným zobrazením založený na logu s manuálním zobrazením. Tato možnost vyžaduje, abyste také nastavili nemovitost.sync_object U tohoto typu článku není nutné základní tabulku publikovat zvlášť. Oracle Publishers to nepodporuje. |
|
upd_cmd |
UPDATE prohlášení k vykonání; jinak je to sestaveno z logu. |
|
NULL |
NULL |
Vrací seznam vlastností článku, které lze změnit. |
[ @force_invalidate_snapshot = ] force_invalidate_snapshot
Uznává, že akce provedená touto uloženou procedurou může zneplatnit existující snímek.
@force_invalidate_snapshot je bit s výchozím nastavením 0.
0 určuje, že změny článku nezpůsobí, že snímek 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 změny článku mohou způsobit, že snapshot bude neplatný, a pokud existují existující předplatné, která vyžadují nový snapshot, dává povolení označit stávající snapshot jako zastaralý a vytvořit nový snapshot.
Viz sekce Poznámky pro vlastnosti, které po změně vyžadují vytvoření nového snímku.
[ @force_reinit_subscription = ] force_reinit_subscription
Uznává, že akce provedená touto uloženou procedurou může vyžadovat opětovnou inicializaci stávajících předplatných.
@force_reinit_subscription je bit s výchozím nastavením 0.
0 určuje, že změny článku nezpůsobí opětovné inicializaci předplatného. Pokud uložená procedura zjistí, že změna vyžaduje opětovnou inicializaci stávajících předplatných, dojde k chybě a žádné změny nejsou provedeny.
1 specifikuje, že změny článku způsobují opětovnou inicializaci stávajících odběrů a dává povolení k opětovné inicializaci předplatného.
Viz sekce Poznámky pro vlastnosti, které po změně vyžadují, aby všechna stávající odběrová byla znovu inicializována.
[ @publisher = ] N'publisher'
Specifikuje vydavatele mimo SQL Server.
@publisher je sysname s výchozím nastavením NULL.
Note
@publisher by se nemělo používat při změně vlastností článku na SQL Server Publisher.
Hodnoty návratového kódu
0 (úspěch) nebo 1 (selhání).
Remarks
sp_changearticle se používá při replikaci snapshotů a transakční replikaci.
Pokud článek patří publikaci podporující peer-to-peer transakční replikaci, můžete měnit descriptionpouze vlastnosti, ins_cmd, upd_cmd, a del_cmd vlastnosti.
Změna kterékoli z následujících vlastností vyžaduje vygenerování nového snímku a musíte zadat hodnotu pro 1 parametr @force_invalidate_snapshot :
del_cmddest_tabledestination_ownerins_cmdpre_creation_cmdschema_optionsupd_cmd
Změna kterékoli z následujících vlastností vyžaduje, aby stávající předplatné byla znovu inicializována a musíte zadat hodnotu 1 pro parametr @force_reinit_subscription .
del_cmddest_tabledestination_ownerfilterins_cmdstatusupd_cmd
V existující publikaci můžete použít sp_changearticle úpravu článku, aniž byste museli celý článek znovu vypustit a přetvořit.
Note
Při změně hodnoty , schema_optionsystém neprovádí bitovou aktualizaci. To znamená, že když nastavíte schema_option s , sp_changearticlemohou být stávající bitová nastavení vypnutá. Pro zachování stávajících nastavení byste měli provést | (BITOVĚ OR) mezi hodnotou, kterou nastavujete, a aktuální hodnotou schema_option, kterou lze určit vykonáním sp_helparticle.
Platné možnosti schématu
Následující tabulka popisuje povolené hodnoty na schema_option základě typu replikace (zobrazeného nahoře) a typu článku (uvedeného v prvním sloupci).
| Typ článku | Typ replikace – Transakční | Typ replikace – Snapshot |
|---|---|---|
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 |
indexed view logbased |
Všechny možnosti | Všechny možnosti kromě 0x02 |
indexed view logbased manualfilter |
Všechny možnosti | Všechny možnosti kromě 0x02 |
indexed view logbased manualview |
Všechny možnosti | Všechny možnosti kromě 0x02 |
indexed view logbase manualboth |
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 |
proc schema only |
0x01, 0x20, , 0x20000x400000, 0x800000, , 0x20000000x8000000, 0x10000000, , 0x20000000, , 0x40000000a0x80000000 |
0x01, 0x20, , 0x20000x400000, 0x800000, , 0x20000000x8000000, 0x10000000, , 0x20000000, , 0x40000000a0x80000000 |
view schema only |
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 |
func schema only |
0x01, 0x20, , 0x20000x400000, 0x800000, , 0x20000000x8000000, 0x10000000, , 0x20000000, , 0x40000000a0x80000000 |
0x01, 0x20, , 0x20000x400000, 0x800000, , 0x20000000x8000000, 0x10000000, , 0x20000000, , 0x40000000a0x80000000 |
indexed view schema only |
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 aktualizační schema_option publikace ve frontě musí být hodnota povolena 0x80 . Podporované schema_option hodnoty pro publikace mimo SQL Server jsou: 0x01, , 0x020x10, , 0x40, 0x80a 0x10000x4000.
Examples
DECLARE @publication AS sysname;
DECLARE @article AS sysname;
DECLARE @option AS int;
SET @publication = N'AdvWorksProductTran';
SET @article = N'Product';
SET @option = (SELECT CAST(0x0000000002030073 AS int));
-- Change the schema options to replicate schema with XML.
USE [AdventureWorks2022]
EXEC sp_changearticle
@publication = @publication,
@article = @article,
@property = N'schema_option',
@value = @option,
@force_invalidate_snapshot = 1;
GO
Permissions
Pouze členové role pevného serveru správce systému nebo role pevné databáze db_owner mohou vykonávat sp_changearticle.