sys.sp_changemergepublication (Transact-SQL)

Gäller för:SQL Server

Ändrar egenskaperna hos en sammanslagningspublikation. Den här lagrade proceduren körs i Publisher i publikationsdatabasen.

Transact-SQL syntaxkonventioner

Syntax

sys.sp_changemergepublication
    [ @publication = ] N'publication'
    [ , [ @property = ] N'property' ]
    [ , [ @value = ] N'value' ]
    [ , [ @force_invalidate_snapshot = ] force_invalidate_snapshot ]
    [ , [ @force_reinit_subscription = ] force_reinit_subscription ]
[ ; ]

Arguments

[ @publication = ] N'publicering'

Namnet på publikationen. @publication är sysname, utan standard.

[ @property = ] N'property'

Egenskapen att ändra sig för den aktuella publikationen. @property är sysname och kan vara ett av värdena som listas i tabellen nedan.

[ @value = ] N'value'

Det nya värdet för den angivna egenskapen. @value är nvarchar(255), med standardvärdet NULL.

, och kan vara ett av de värden som listas i tabellen nedan.

Denna tabell beskriver de egenskaper för publikationen som kan ändras och beskriver begränsningar för värdena för dessa egenskaper.

Property Value Description
allow_anonymous true Anonyma prenumerationer är tillåtna.
false Anonyma prenumerationer är inte tillåtna.
allow_partition_realignment true Raderingar skickas till prenumeranten för att återspegla resultatet av en partitionsändring genom att ta bort data som inte längre ingår i prenumerantens partition. Det här är standardbeteendet.
false Data från en gammal partition lämnas på prenumeranten, där ändringar gjorda i denna data på Publisher inte replikeras till denna prenumerant. Istället replikeras ändringar som görs på Subscriber till Publisher. Detta används för att behålla data i en prenumeration från en gammal partition när datan måste vara tillgänglig för historiska ändamål.
allow_pull true Pull-prenumerationer är tillåtna för den aktuella publikationen.
false Prenumerationer på pull är inte tillåtna för den aktuella publikationen.
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_subscriber_initiated_snapshot true Prenumeranten kan initiera snapshot-processen.
false Prenumeranten kan inte starta snapshot-processen.
allow_subscription_copy true Du kan kopiera prenumerationsdatabaserna som prenumererar på denna publikation.
false Du kan inte kopiera prenumerationsdatabaserna som prenumererar på denna publikation.
allow_synctoalternate true Tillåter en alternativ synkroniseringspartner att synkronisera med denna Publisher.
false Tillåter inte en alternativ synkroniseringspartner att synkronisera med denna Publisher.
allow_web_synchronization true Prenumerationer kan synkroniseras över HTTPS.
false Prenumerationer kan inte synkroniseras över HTTPS.
alt_snapshot_folder Specificerar platsen för den alternativa mappen för snapshoten.
automatic_reinitialization_policy 1 Ändringar laddas upp från prenumeranten innan prenumerationen återstartas.
0 Prenumerationen initieras om utan att först ladda upp ändringar.
centralized_conflicts true Alla konfliktposter lagras hos Publisher. Om du ändrar denna egenskap måste befintliga prenumeranter ominitialiseras.
false Konfliktposter lagras på den server som förlorades i konfliktlösningen. Om du ändrar denna egenskap måste befintliga prenumeranter ominitialiseras.
compress_snapshot true Snapshot i en alternativ snapshot-mapp komprimeras till CAB-formatet. Snapshoten i standardmappen kan inte komprimeras. Att ändra denna egenskap kräver en ny snapshot.
false Som standard är inte snapshoten komprimerad. Att ändra denna egenskap kräver en ny snapshot.
conflict_logging publisher Konfliktposter lagras hos Publisher.
subscriber Konfliktposter lagras hos den prenumerant som orsakade konflikten. Stöds inte för SQL Server Compact-abonnenter.
both Konfliktposter lagras både hos Publisher och Subscriber.
conflict_retention En int som specificerar lagringstiden, i dagar, för vilken konflikter behålls. Att sätta conflict_retention på 0 betyder att ingen konfliktrensning behövs.
description Beskrivning av publikationen.
dynamic_filters true Publiceringen filtreras baserat på en dynamisk klausul.
false Publicering filtreras inte dynamiskt.
enabled_for_internet true Publicering är möjliggjord för internet. File Transfer Protocol (FTP) kan användas för att överföra snapshot-filerna till en prenumerant. Synkroniseringsfilerna för publiceringen läggs i katalogen C:\Program Files\Microsoft SQL Server\MSSQL\Repldata\ftp .
false Publicering är inte aktiverad på internet.
ftp_address Nätverksadressen för FTP-tjänsten för distributören. Specificerar var publiceringssnapshotfiler lagras.
ftp_login Användarnamnet som används för att ansluta till FTP-tjänsten.
ftp_password Användarlösenordet som används för att ansluta till FTP-tjänsten.
ftp_port Portnumret för FTP-tjänsten för distributören. Specificerar TCP-portnumret för FTP-platsen där publiceringssnapshotfilerna lagras.
ftp_subdirectory Specificerar var snapshot-filerna skapas om publikationen stödjer spridning av snapshots med FTP.
generation_leveling_threshold int Specificerar antalet ändringar som finns i en generation. En generation är en samling förändringar som levereras till en Publisher eller prenumerant.
keep_partition_changes true Synkroniseringen är optimerad, och endast prenumeranter som har rader i de ändrade partitionerna påverkas. Att ändra denna egenskap kräver en ny snapshot.
false Synkroniseringen är inte optimerad, och partitionerna som skickas till prenumeranter verifieras när data ändras i en partition. Att ändra denna egenskap kräver en ny snapshot.
max_concurrent_merge En int som representerar det maximala antalet samtidiga sammanslagningsprocesser som kan köras mot en publikation. Om 0 finns det ingen gräns. Om fler än detta antal sammanslagningsprocesser är schemalagda att köras samtidigt, placeras överskottsjobben i en kö tills en aktuell merge-process är klar.
max_concurrent_dynamic_snapshots En int som representerar det maximala antalet snapshot-sessioner för att generera en filtrerad datasnapshot som kan köras samtidigt mot en merge-publikation som använder parametriserade radfilter. Om 0, finns det ingen gräns. Om fler än detta antal snapshot-processer är schemalagda att köras samtidigt, placeras överskottsjobben i en kö tills en aktuell sammanslagningsprocess är klar.
post_snapshot_script Anger en pekare till en .sql filplats. Distribution Agent eller Merge Agent kör post-snapshot-skriptet efter att alla andra replikerade objektskript och data har applicerats under en initial synkronisering. Att ändra denna egenskap kräver en ny snapshot.
pre_snapshot_script Anger en pekare till en .sql filplats. Merge Agent kör pre-snapshot-skriptet före något av de replikerade objektskripten när en snapshot appliceras på en prenumerant. Att ändra denna egenskap kräver en ny snapshot.
publication_compatibility_level 100RTM SQL Server 2008 (10.0.x)
90RTM SQL Server 2005 (9.x)
publish_to_activedirectory true Denna parameter är föråldrad och behålls för bakåtkompatibilitet mellan skript. Du kan inte längre lägga till publiceringsinformation i služba Active Directory.
false Tar bort publiceringsinformationen från služba Active Directory.
replicate_ddl 1 Data Definition Language (DDL)-satser som körs hos Publisher replikeras.
0 DDL-satser replikeras inte.
retention En int som representerar antalet retention_period_unit enheter för vilka ändringar ska sparas för den aktuella publikationen. Om prenumerationen inte synkroniseras inom lagringsperioden och de väntande ändringarna den fått togs bort av en rensningsoperation hos distributören, löper prenumerationen ut och måste initieras om. Den maximalt tillåtna lagringstiden är antalet dagar mellan den 31 december 9999 och det aktuella datumet.

Notera: Behållningstiden för sammanslagningspublikationer har en 24-timmars frist för att tillgodose prenumeranter i olika tidszoner.
retention_period_unit day Förvaringstiden anges i dagar.
week Förvaringstiden anges i veckor.
month Förvaringstiden anges i månader.
year Förvaringstiden anges i år.
snapshot_in_defaultfolder true Snapshot-filer lagras i standardmappen snapshot.
false Snapshot-filer lagras på den alternativa platsen som anges av alt_snapshot_folder. Denna kombination specificerar att snapshot-filerna lagras både på standard- och alternativplatsen.
snapshot_ready true En översikt för publikationen finns tillgänglig.
false Snapshot för publikationen finns inte tillgängligt.
status active Publiceringen är aktiv.
inactive Publiceringen är i ett inaktivt tillstånd.
sync_mode native eller

bcp native
Native-mode bulkkopieringsprogramutdata från alla tabeller används för den initiala snapshoten.
character

eller bcp character
Teckenläge bulkkopierar programutdata från alla tabeller används för den initiala ögonblicksbilden, vilket krävs för alla icke-SQL Server-prenumeranter.
use_partition_groups

Notera: Efter att ha använt partitionsgrupper, om du återgår till att använda setupbelongs, och sätter use_partition_groups=false i changemergearticle, kanske detta inte speglas korrekt efter att en snapshot tagits. De triggers som genereras av snapshot är kompatibla med partitionsgrupper.

Lösningen i detta scenario är att sätta statusen till Inaktiv, ändra , use_partition_groupsoch sedan sätta statusen till Aktiv.
true Publicering använder förberäknade partitioner.
false Publicering använder inte förberäknade partitioner.
validate_subscriber_info Listar de funktioner som används för att hämta prenumerantinformation. Därefter validerar de dynamiska filtreringskriterierna som används för prenumeranten för att verifiera att informationen är konsekvent uppdelad.
web_synchronization_url Standardvärdet för Internet-URL:en som används för webbsynkronisering.
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.

  • 0 specificerar att ändring av publikationen inte ogiltigförklarar snapshoten. Om den lagrade proceduren upptäcker att ändringen kräver en ny snapshot, uppstår ett fel och inga ändringar görs.

  • 1 specificerar att ändring av publikationen kan ogiltigförklara snapshoten. Om det finns befintliga prenumerationer som kräver en ny snapshot, ger det tillstånd att markera den befintliga snapshoten som föråldrad och att en ny snapshot genereras.

Se avsnittet Kommentarer för de egenskaper som, när de ändras, kräver att en ny snapshot genereras.

[ @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.

  • 0 specificerar att ändring av publikation inte kräver att prenumerationer initieras om. Om den lagrade proceduren upptäcker att ändringen kräver att befintliga prenumerationer initialiseras om, uppstår ett fel och inga ändringar göras.

  • 1 betyder att ändringar i publikationen återinitierar befintliga prenumerationer och ger tillstånd för prenumerationsominitiering att genomföras.

Se avsnittet Kommentarer för de egenskaper som, när de ändras, kräver att alla befintliga prenumerationer initieras om.

Returnera kodvärden

0 (lyckades) eller 1 (fel).

Remarks

sp_changemergepublication används vid sammanslagningsreplikation.

Att ändra följande egenskaper kräver att en ny snapshot genereras. Du måste ange ett värde på 1 för @force_invalidate_snapshot parameter.

  • alt_snapshot_folder
  • compress_snapshot
  • dynamic_filters
  • ftp_address
  • ftp_login
  • ftp_password
  • ftp_port
  • ftp_subdirectory
  • post_snapshot_script
  • publication_compatibility_level (endast till 80SP3 )
  • pre_snapshot_script
  • snapshot_in_defaultfolder
  • sync_mode
  • use_partition_groups

Att ändra följande egenskaper kräver att befintliga prenumerationer initieras om. Du måste ange ett värde för 1@force_reinit_subscription parametern.

  • dynamic_filters
  • validate_subscriber_info

För att lista publiceringsobjekt i služba Active Directory med , publish_to_active_directorymåste SQL Server-objektet redan skapas i služba Active Directory.

Examples

DECLARE @publication AS sysname;
SET @publication = N'AdvWorksSalesOrdersMerge'; 

-- Disable DDL replication for the publication.
USE [AdventureWorks2022]
EXEC sp_changemergepublication 
  @publication = @publication, 
  @property = N'replicate_ddl', 
  @value = 0,
  @force_invalidate_snapshot = 0, 
  @force_reinit_subscription = 0;
GO

Permissions

Endast medlemmar av sysadmin-fasta serverrollen eller db_owner fasta databasrollen kan köra sp_changemergepublication.