Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
gäller för:SQL Server
Azure SQL Managed Instance
Ändrar en publikations egenskaper. Den här lagrade proceduren körs i Publisher i publikationsdatabasen.
Transact-SQL syntaxkonventioner
Syntax
sys.sp_changepublication
[ [ @publication = ] N'publication' ]
[ , [ @property = ] N'property' ]
[ , [ @value = ] N'value' ]
[ , [ @force_invalidate_snapshot = ] force_invalidate_snapshot ]
[ , [ @force_reinit_subscription = ] force_reinit_subscription ]
[ , [ @publisher = ] N'publisher' ]
[ ; ]
Arguments
[ @publication = ] N'publicering'
Namnet på publikationen.
@publication är sysname, med standardvärdet .NULL
[ @property = ] N'property'
Publiceringsegenskapen att ändras.
@property är nvarchar(255), med en standard på NULL.
[ @value = ] N'value'
Det nya egenskapsvärdet.
@value är nvarchar(255), med standardvärdet NULL.
Denna tabell beskriver vilka egenskaper som kan ändras för publikationen och begränsningar för värdena för dessa egenskaper.
| Property | Value | Description |
|---|---|---|
allow_anonymous |
true |
Anonyma prenumerationer kan skapas för den aktuella publikationen och immediate_sync måste också vara true. Kan inte bytas ut för peer-to-peer-publikationer. |
false |
Anonyma prenumerationer kan inte skapas för den aktuella publikationen. Kan inte bytas ut för peer-to-peer-publikationer. | |
allow_initialize_from_backup |
true |
Prenumeranter kan initiera en prenumeration på denna publikation från en backup istället för en initial snapshot. Denna egenskap kan inte ändras för publikationer som inte är SQL Server. |
false |
Prenumeranter måste använda den initiala ögonblicksbilden. Denna egenskap kan inte ändras för publikationer som inte är SQL Server. | |
allow_partition_switch |
true |
ALTER TABLE...SWITCH Satser kan köras mot den publicerade databasen. Mer information finns i Replikera partitionerade tabeller och index. |
false |
ALTER TABLE...SWITCH Satser kan inte köras mot den publicerade databasen. |
|
allow_pull |
true |
Pull-prenumerationer är tillåtna för den aktuella publikationen. Denna egenskap kan inte ändras för publikationer som inte är SQL Server. |
false |
Prenumerationer på pull är inte tillåtna för den aktuella publikationen. Denna egenskap kan inte ändras för publikationer som inte är SQL Server. | |
allow_push |
true |
Push-prenumerationer är tillåtna för den aktuella publikationen. |
false |
Push-prenumerationer är inte tillåtna för den aktuella publikationen. | |
allow_subscription_copy |
true |
Möjliggör möjligheten att kopiera databaser som prenumererar på denna publikation. Denna egenskap kan inte ändras för publikationer som inte är SQL Server. |
false |
Inaktiverar möjligheten att kopiera databaser som prenumererar på denna publikation. Denna egenskap kan inte ändras för publikationer som inte är SQL Server. | |
alt_snapshot_folder |
Platsen för den alternativa mappen för snapshoten. | |
centralized_conflicts |
true |
Konfliktposter lagras hos Publisher. Kan ändras endast om det inte finns några aktiva prenumerationer. Denna egenskap kan inte ändras för publikationer som inte är SQL Server. |
false |
Konfliktposter lagras både hos Publisher och hos den prenumerant som orsakade konflikten. Kan ändras endast om det inte finns några aktiva prenumerationer. Denna egenskap kan inte ändras för publikationer som inte är SQL Server. | |
compress_snapshot |
true |
Snapshot i en alternativ snapshot-mapp komprimeras till .cab filformat. Snapshoten i standardmappen kan inte komprimeras. |
false |
Snapshot är inte komprimerat, vilket är standardbeteendet för replikering. | |
conflict_policy |
pub wins |
Konfliktlösningspolicy för att uppdatera prenumeranter där Publisher vinner konflikten. Denna egenskap kan endast ändras om inga aktiva prenumerationer finns. Stöds inte för Oracle Publishers. |
sub reinit |
För att uppdatera prenumeranter måste prenumerationen ominitieras om en konflikt uppstår. Denna egenskap kan endast ändras om inga aktiva prenumerationer finns. Stöds inte för Oracle Publishers. | |
sub wins |
Konfliktlösningspolicy för att uppdatera prenumeranter där prenumeranten vinner konflikten. Denna egenskap kan endast ändras om inga aktiva prenumerationer finns. Stöds inte för Oracle Publishers. | |
conflict_retention |
Ett int-värde som specificerar konfliktens lagringstid, i dagar. Standardbehållningen är 14 dagar.
0 vilket innebär att ingen konfliktsanering behövs. Stöds inte för Oracle Publishers. |
|
description |
Valfri post som beskriver publikationen. | |
enabled_for_het_sub |
true |
Möjliggör för publikationen att stödja icke-SQL Server-prenumeranter.
enabled_for_het_sub Det kan inte ändras när det finns prenumerationer på publikationen. Du kan behöva utföra sp_changepublication för att uppfylla följande krav innan du sätter enabled_for_het_sub på true:- allow_queued_tran måste vara false.- allow_sync_tran måste vara false.Att byta enabled_for_het_sub till true kan ändra befintliga publiceringsinställningar. Mer information finns i Icke-SQL Server-prenumeranter. Denna egenskap kan inte ändras för publikationer som inte är SQL Server. |
false |
Publikationen stöder inte prenumeranter som inte är SQL Server. Denna egenskap kan inte ändras för publikationer som inte är SQL Server. | |
enabled_for_internet |
true |
Publicering är aktiverad för Internet, och File Transfer Protocol (FTP) kan användas för att överföra snapshot-filerna till en abonnent. Synkroniseringsfilerna för publikationen läggs i följande katalog: C:\Program Files\Microsoft SQL Server\MSSQL\Repldata\ftp.
ftp_address Det kan inte vara NULL. Denna egenskap kan inte ändras för publikationer som inte är SQL Server. |
false |
Publicering är inte aktiverad på internet. Denna egenskap kan inte ändras för publikationer som inte är SQL Server. | |
enabled_for_p2p |
true |
Publikationen stödjer peer-to-peer-replikation. Denna egenskap kan inte ändras för publikationer som inte är SQL Server. För att sätta enabled_for_p2p till truegäller följande begränsningar:- allow_anonymous måste vara false- allow_dts måste vara false.- allow_initialize_from_backup måste vara true- allow_queued_tran måste vara false.- allow_sync_tran måste vara false.- enabled_for_het_sub måste vara false.- independent_agent måste vara true.- repl_freq måste vara continuous.- replicate_ddl måste vara 1. |
false |
Publikationen stöder inte peer-to-peer-replikation. Denna egenskap kan inte ändras för publikationer som inte är SQL Server. | |
ftp_address |
FTP-tillgänglig plats för publiceringssnapshotfilerna. Denna egenskap kan inte ändras för publikationer som inte är SQL Server. | |
ftp_login |
Användarnamn används för att ansluta till FTP-tjänsten, och värdet anonymous är tillåtet. Denna egenskap kan inte ändras för publikationer som inte är SQL Server. |
|
ftp_password |
Lösenord för användarnamnet som används för att ansluta till FTP-tjänsten. Denna egenskap kan inte ändras för publikationer som inte är SQL Server. | |
ftp_port |
Portnummer för FTP-tjänsten för distributören. Denna egenskap kan inte ändras för publikationer som inte är SQL Server. | |
ftp_subdirectory |
Specificerar var snapshot-filerna skapas om publikationen stödjer spridning av snapshots med FTP. Denna egenskap kan inte ändras för publikationer som inte är SQL Server. | |
immediate_sync |
true |
Synkroniseringsfiler för publiceringen skapas eller återskapas varje gång Snapshot Agent körs. Prenumeranter kan ta emot synkroniseringsfilerna omedelbart efter prenumerationen, om Snapshot Agent slutför en gång före prenumerationen. Nya prenumerationer får de senaste synkroniseringsfilerna som genereras av den senaste körningen av Snapshot Agent.
independent_agent måste också vara true. För mer information, se Effekt av omedelbar synkronisering. |
false |
Synkroniseringsfiler skapas endast om det finns nya prenumerationer. Prenumeranter kan inte ta emot synkroniseringsfilerna efter prenumerationen förrän Snapshot Agent har startats och slutförts. | |
independent_agent |
true |
Publikationen har sin egen dedikerade Distribution Agent. |
false |
Publikation använder en delad Distribution Agent, och varje publikation/prenumerationspar har en gemensam agent. | |
p2p_continue_onconflict |
true |
Distribution Agent fortsätter att behandla ändringar när en konflikt upptäcks. Försiktighet: Vi rekommenderar att du använder standardvärdet FALSE. När det här alternativet är inställt på TRUEförsöker distributionsagenten konvergera data i topologin genom att tillämpa den konfliktande raden från noden som är det högsta ursprungs-ID:t. Den här metoden garanterar inte konvergens. Du bör se till att topologin är konsekvent när en konflikt har identifierats. Mer information finns i "Hantera konflikter" i Peer-to-Peer – Konfliktidentifiering i Peer-to-Peer-replikering. |
false |
Distribution Agent slutar behandla ändringar när en konflikt upptäcks. | |
post_snapshot_script |
Specificerar platsen för en Transact-SQL skriptfil som Distribution Agent kör efter att alla andra replikerade objektskript och data har applicerats under en initial synkronisering. | |
pre_snapshot_script |
Specificerar platsen för en Transact-SQL skriptfil som Distribution Agent kör innan alla andra replikerade objektskript och data appliceras under en initial synkronisering. | |
publish_to_ActiveDirectory |
true |
Denna parameter är föråldrad och stöds endast för bakåtkompatibilitet av skript. Du kan inte längre lägga till publiceringsinformation i Microsoft služba Active Directory. |
false |
Tar bort publiceringsinformationen från služba Active Directory. | |
queue_type |
sql |
Använd SQL Server för att lagra transaktioner. Denna egenskap kan endast ändras om inga aktiva prenumerationer finns. Notera: Stödet för att använda Microsoft Message Queuing upphör. Att ange ett värde på msmqför @value resulterar i ett fel. |
redirected_publisher |
Namnet på tillgänglighetsgruppens lyssnare. Används i peer-to-peer-replikering när en peer är i en tillgänglighetsgrupp. Denna egenskap kan inte ändras för publikationer som inte är SQL Server. Introducerad i SQL Server 2019 (15.x) CU 13. För mer information, se Konfigurera en peer som en del av tillgänglighetsgruppen eller Konfigurera båda peers i tillgänglighetsgrupper. | |
repl_freq |
continuous |
Publicerar utdata från alla loggbaserade transaktioner. |
snapshot |
Publicerar endast schemalagda synkroniseringshändelser. | |
replicate_ddl |
1 |
Data definition language (DDL)-satser som körs hos utgivaren replikeras. Denna egenskap kan inte ändras för publikationer som inte är SQL Server. |
0 |
DDL-satser replikeras inte. Denna egenskap kan inte ändras för publikationer som inte är SQL Server. Replikering av schemaändringar kan inte inaktiveras vid användning av peer-to-peer-replikering. | |
replicate_partition_switch |
true |
ALTER TABLE...SWITCH satser som körs mot den publicerade databasen bör replikeras till prenumeranter. Det här alternativet är endast giltigt om allow_partition_switch är inställt på true. Mer information finns i Replikera partitionerade tabeller och index. |
false |
ALTER TABLE...SWITCH uttalanden ska inte replikeras till prenumeranter. |
|
retention |
INT representerar lagringstiden, i timmar, för prenumerationsaktivitet. Om en prenumeration inte är aktiv inom lagringsperioden tas den bort. | |
snapshot_in_defaultfolder |
true |
Snapshot-filer lagras i standardmappen snapshot. Om det alt_snapshot_folder också anges lagras snapshot-filer både på standard- och alternativplatsen. |
false |
Snapshot-filer lagras på den alternativa plats som anges av alt_snapshot_folder. |
|
status |
active |
Publikationsdata är tillgängliga för prenumeranter omedelbart när publikationen skapas. Stöds inte för Oracle Publishers. |
inactive |
Publikationsdata är inte tillgängliga för prenumeranter när publikationen skapas. Stöds inte för Oracle Publishers. | |
sync_method |
native |
Använder native-mode bulkkopiering av alla tabeller vid synkronisering av prenumerationer. |
character |
Använder teckenläge med bulkkopiering av alla tabeller vid synkronisering av prenumerationer. | |
concurrent |
Använder native-mode bulk-copy programutdata från alla tabeller, men låser inte tabeller under snapshot-genereringen. Gäller inte för snapshot-replikering. | |
concurrent_c |
Använder masskopiering av programutdata från alla tabeller i karaktärsläge, men låser inte tabeller under snapshot-genereringen. Gäller inte för snapshot-replikering. | |
taskid |
Denna egenskap är föråldrad och stöds inte längre. | |
allow_drop |
true |
Möjliggör DROP TABLE DLL-stöd för artiklar som ingår i transaktionell replikation. Minsta stödda version: SQL Server 2014 (12.x) Service Pack 2 eller högre och SQL Server 2016 (13.x) Service Pack 1 eller högre. För mer information, se KB 3170123 |
false (standardinställning) |
Inaktiverar DLL-stöd DROP TABLE för artiklar som ingår i transaktionell replikation. |
|
NULL (standardinställning) |
Returnerar listan över stödda värden för @property. |
[ @force_invalidate_snapshot = ] force_invalidate_snapshot
Erkänner att åtgärden som utförs av denna lagrade procedur kan ogiltigförklara en befintlig snapshot.
@force_invalidate_snapshot är bit, med standardvärdet 0.
-
0anger att ändringar i artikeln inte gör att ögonblicksbilden blir ogiltig. Om den lagrade proceduren upptäcker att ändringen kräver en ny snapshot, uppstår ett fel och inga ändringar görs. -
1specificerar att ändringar i artikeln kan göra snapshoten ogiltig. Om det finns befintliga prenumerationer som skulle kräva en ny snapshot ger detta värde tillstånd för att den befintliga snapshoten kan markeras som föråldrad och en ny snapshot genereras.
Se avsnittet Kommentarer för de egenskaper som, när de ändras, kräver generering av en ny ögonblicksbild.
[ @force_reinit_subscription = ] force_reinit_subscription
Erkänner att åtgärden som utförs av denna lagrade procedur kan kräva att befintliga prenumerationer initialiseras om.
@force_reinit_subscription är lite, med standardvärdet 0.
-
0anger att ändringar i artikeln inte gör att prenumerationen initieras på nytt. Om den lagrade proceduren upptäcker att ändringen skulle kräva att befintliga prenumerationer initieras om, uppstår ett fel och inga ändringar görs. -
1anger att ändringar i artikeln orsakar att den befintliga prenumerationen ominitieras, och ger tillstånd för att prenumerationsreinitialiseringen ska ske.
[ @publisher = ] N'publisher'
Specificerar en icke-SQL Server Publisher.
@publisher är sysname, med standardvärdet .NULL
@publisher bör inte användas när man ändrar artikelegenskaper på en SQL Server Publisher.
Returnera kodvärden
0 (lyckades) eller 1 (fel).
Remarks
sp_changepublication används vid snapshot-replikering och transaktionell replikation.
Efter att ha ändrat någon av följande egenskaper måste du generera en ny snapshot, och du måste ange ett värde på 1 för @force_invalidate_snapshot-parametern .
alt_snapshot_foldercompress_snapshotenabled_for_het_subftp_addressftp_loginftp_passwordftp_portftp_subdirectorypost_snapshot_scriptpre_snapshot_scriptsnapshot_in_defaultfoldersync_mode
För att lista publiceringsobjekt i služba Active Directory med parametern publish_to_active_directory måste SQL Server-objektet redan skapas i služba Active Directory.
Effekt av omedelbar synkronisering
När omedelbar synkronisering är påslagen spåras alla ändringar i loggen omedelbart efter att den initiala snapshoten genererats även om det inte finns några prenumerationer. Loggade ändringar används när en kund använder backup för att lägga till en ny peer-nod. Efter att backupen återställts synkas peern med andra ändringar som sker efter att backupen tagits. Eftersom kommandona spåras i distributionsdatabasen kan synkroniseringslogiken titta på det senast säkerhetskopierade LSN:et och använda detta som utgångspunkt, med vetskapen om att kommandot är tillgängligt om säkerhetskopieringen togs inom maxlagringstiden. (Standardvärdet för minsta lagringstid är 0 timmar, och maximal lagringstid är 24 timmar.)
När omedelbar synkronisering är avstängd behålls ändringarna åtminstone under minsta lagringstid och rensas omedelbart för alla transaktioner som redan är replikerade. Om omedelbar synkronisering är avstängd och konfigurerad med standardlagringsperioden är det troligt att de nödvändiga ändringarna efter att säkerhetskopieringen togs har rensats bort, och den nya peer-noden kommer inte att initialiseras korrekt. Det enda alternativet som återstår är att quiesc-a topologin. Att ställa in omedelbar synkronisering på ger större flexibilitet och är rekommenderad inställning för P2P-replikering.
Examples
DECLARE @publication AS sysname
SET @publication = N'AdvWorksProductTran'
-- Turn off DDL replication for the transactional publication.
USE [AdventureWorks2022]
EXEC sp_changepublication
@publication = @publication,
@property = N'replicate_ddl',
@value = 0
GO
Permissions
Endast medlemmar av sysadmin-fasta serverrollen eller db_owner fasta databasrollen kan köra sp_changepublication.