sys.sp_changemergepublication (Transact-SQL)

Van toepassing op:SQL Server

Verandert de eigenschappen van een samengevoegde publicatie. Deze opgeslagen procedure wordt uitgevoerd bij Publisher in de publicatiedatabase.

Transact-SQL syntaxis-conventies

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'publicatie'

De naam van de publicatie. @publication is sysname, zonder standaard.

[ @property = ] N'eigenschap'

De eigenschap moet veranderen voor de gegeven publicatie. @property is een systeemnaam en kan een van de waarden zijn die in de volgende tabel staan.

[ @value = ] N'waarde'

De nieuwe waarde voor de gespecificeerde eigenschap. @value is nvarchar(255), met een standaardwaarde van NULL.

, en kan een van de waarden zijn die in de volgende tabel staan.

Deze tabel beschrijft de eigenschappen van de publicatie die kunnen worden gewijzigd en beschrijft beperkingen op de waarden voor die eigenschappen.

Vastgoed Value Description
allow_anonymous true Anonieme abonnementen zijn toegestaan.
false Anonieme abonnementen zijn niet toegestaan.
allow_partition_realignment true Verwijderingen worden naar de abonnee gestuurd om de resultaten van een partitiewijziging weer te geven door gegevens te verwijderen die niet langer deel uitmaken van de partitie van de abonnee. Dit is het standaardgedrag.
false Data van een oude partitie blijft op de abonnee, waar wijzigingen in deze data op de Publisher niet worden gerepliceerd naar deze abonnee. In plaats daarvan worden wijzigingen die op de Subscriber worden aangebracht naar de Publisher gerepliceerd. Dit wordt gebruikt om gegevens in een abonnement van een oude partitie te bewaren wanneer de gegevens toegankelijk moeten zijn voor historische doeleinden.
allow_pull true Trekabonnementen zijn toegestaan voor de betreffende publicatie.
false Pull-abonnementen zijn niet toegestaan voor de betreffende publicatie.
allow_push true Push-abonnementen zijn toegestaan voor de betreffende publicatie.
false Push-abonnementen zijn niet toegestaan voor de betreffende publicatie.
allow_subscriber_initiated_snapshot true De abonnee kan het snapshotproces starten.
false De abonnee kan het snapshotproces niet starten.
allow_subscription_copy true U kunt de abonnementsdatabases kopiëren die zich op deze publicatie abonneren.
false Je kunt de abonnementsdatabases die op deze publicatie zijn abonneerd niet kopiëren.
allow_synctoalternate true Staat een alternatieve synchronisatiepartner toe om met deze Publisher te synchroniseren.
false Staat geen alternatieve synchronisatiepartner toe om met deze Publisher te synchroniseren.
allow_web_synchronization true Abonnementen kunnen worden gesynchroniseerd via HTTPS.
false Abonnementen kunnen niet gesynchroniseerd worden via HTTPS.
alt_snapshot_folder Geeft de locatie van de alternatieve map voor de snapshot aan.
automatic_reinitialization_policy 1 Wijzigingen worden vanuit de abonnee geüpload voordat het abonnement opnieuw wordt geïntinitialiseerd.
0 Het abonnement wordt opnieuw geïnitiseerd zonder eerst wijzigingen te uploaden.
centralized_conflicts true Alle conflictregisters worden opgeslagen bij de Publisher. Als je deze eigenschap verandert, moeten bestaande abonnees opnieuw worden geïntinitieerd.
false Conflictrecords worden opgeslagen op de server die verloren is gegaan bij de conflictoplossing. Als je deze eigenschap verandert, moeten bestaande abonnees opnieuw worden geïntinitieerd.
compress_snapshot true Snapshot in een alternatieve snapshotmap wordt gecomprimeerd in het CAB-formaat. De snapshot in de standaard snapshotmap kan niet worden gecomprimeerd. Het wijzigen van deze eigenschap vereist een nieuwe snapshot.
false Standaard is de snapshot niet gecomprimeerd. Het wijzigen van deze eigenschap vereist een nieuwe snapshot.
conflict_logging publisher Conflictgegevens worden opgeslagen bij de Publisher.
subscriber Conflictgegevens worden opgeslagen bij de abonnee die het conflict heeft veroorzaakt. Niet ondersteund voor SQL Server Compact-abonnees.
both Conflictgegevens worden opgeslagen bij zowel de Publisher als de Abonnee.
conflict_retention Een int die de retentieperiode in dagen specificeert waarvoor conflicten worden gehouden. Op conflict_retention instellen 0 betekent dat er geen conflictopruiming nodig is.
description Beschrijving van de publicatie.
dynamic_filters true Publicatie wordt gefilterd op basis van een dynamische clausule.
false Publicatie wordt niet dynamisch gefilterd.
enabled_for_internet true Publicatie is ingeschakeld voor het internet. File Transfer Protocol (FTP) kan worden gebruikt om de snapshotbestanden naar een abonnee over te dragen. De synchronisatiebestanden voor de publicatie worden in de C:\Program Files\Microsoft SQL Server\MSSQL\Repldata\ftp map geplaatst.
false Publicatie is niet ingeschakeld op het internet.
ftp_address Het netwerkadres van de FTP-service voor de distributeur. Geeft aan waar publicatiesnapshotbestanden worden opgeslagen.
ftp_login De gebruikersnaam die wordt gebruikt om verbinding te maken met de FTP-dienst.
ftp_password Het gebruikerswachtwoord dat wordt gebruikt om verbinding te maken met de FTP-dienst.
ftp_port Het poortnummer van de FTP-service voor de distributeur. Specificeert het TCP-poortnummer van de FTP-site waar de publicatiesnapshotbestanden worden opgeslagen.
ftp_subdirectory Geeft aan waar de snapshotbestanden worden aangemaakt als de publicatie het propageren van snapshots ondersteunt via FTP.
generation_leveling_threshold int Specificeert het aantal wijzigingen dat in een generatie is opgenomen. Een generatie is een verzameling wijzigingen die worden geleverd aan een Publisher of Abonnee.
keep_partition_changes true Synchronisatie is geoptimaliseerd, en alleen abonnees die rijen hebben in de gewijzigde partities worden beïnvloed. Het wijzigen van deze eigenschap vereist een nieuwe snapshot.
false Synchronisatie is niet geoptimaliseerd, en de partities die naar abonnees worden gestuurd, worden geverifieerd wanneer gegevens in een partitie veranderen. Het wijzigen van deze eigenschap vereist een nieuwe snapshot.
max_concurrent_merge Een int die het maximale aantal gelijktijdige samenvoegprocessen vertegenwoordigt dat tegen een publicatie kan worden uitgevoerd. Als het 0 is, is er geen limiet. Als meer dan dit aantal mergeprocessen tegelijkertijd wordt uitgevoerd, worden de overtollige taken in een wachtrij geplaatst totdat een currentlmerge-proces is afgerond.
max_concurrent_dynamic_snapshots Een int die het maximale aantal snapshotsessies vertegenwoordigt om een gefilterde datasnapshot te genereren die gelijktijdig kan draaien tegen een mergepublicatie die geparametriseerde rijfilters gebruikt. Als 0, is er geen limiet. Als meer dan dit aantal snapshot-processen tegelijk wordt uitgevoerd, worden de overtollige taken in een wachtrij geplaatst totdat een huidig mergeproces is afgerond.
post_snapshot_script Hiermee geeft u een aanwijzer naar een .sql bestandslocatie. De Distribution Agent of Merge Agent voert het post-snapshot script uit nadat alle andere gerepliceerde objectscripts en data zijn toegepast tijdens een initiële synchronisatie. Het wijzigen van deze eigenschap vereist een nieuwe snapshot.
pre_snapshot_script Hiermee geeft u een aanwijzer naar een .sql bestandslocatie. De Merge Agent voert het pre-snapshot script uit vóór een van de gerepliceerde objectscripts bij het toepassen van een snapshot bij een abonnee. Het wijzigen van deze eigenschap vereist een nieuwe snapshot.
publication_compatibility_level 100RTM SQL Server 2008 (10.0.x)
90RTM SQL Server 2005 (9.x)
publish_to_activedirectory true Deze parameter is verouderd en wordt behouden voor achterwaartse compatibiliteit van scripts. Je kunt geen publicatie-informatie meer toevoegen aan Active Directory.
false Verwijdert de publicatie-informatie uit Active Directory.
replicate_ddl 1 Data Definition Language (DDL)-instructies die bij de Publisher worden uitgevoerd, worden gerepliceerd.
0 DDL-statements worden niet gerepliceerd.
retention Een int die het aantal retention_period_unit eenheden weergeeft waarvoor wijzigingen voor de betreffende publicatie moeten worden opgeslagen. Als het abonnement niet binnen de retentieperiode is gesynchroniseerd en de openstaande wijzigingen die het heeft ontvangen zijn verwijderd door een opruimoperatie bij de distributeur, verloopt het abonnement en moet het opnieuw worden geïntialiseerd. De maximaal toegestane retentieperiode is het aantal dagen tussen 31 december 9999 en de huidige datum.

Opmerking: De retentieperiode voor samengevoegde publicaties heeft een respijtperiode van 24 uur om abonnees in verschillende tijdzones te accommoderen.
retention_period_unit day De retentieperiode wordt in dagen vastgesteld.
week De retentieperiode wordt in weken vastgesteld.
month De retentieperiode wordt in maanden vastgesteld.
year De retentieperiode wordt in jaren vastgesteld.
snapshot_in_defaultfolder true Snapshotbestanden worden opgeslagen in de standaard snapshotmap.
false Snapshotbestanden worden opgeslagen op de alternatieve locatie die is gespecificeerd door alt_snapshot_folder. Deze combinatie specificeert dat de snapshotbestanden zowel op de standaard- als alternatieve locatie worden opgeslagen.
snapshot_ready true Een overzicht van de publicatie is beschikbaar.
false Een snapshot van de publicatie is niet beschikbaar.
status active De publicatie is in actieve staat.
inactive De publicatie bevindt zich in een inactieve staat.
sync_mode native of

bcp native
Native mode bulk-copy programma-uitvoer van alle tabellen wordt gebruikt voor de initiële snapshot.
character

of bcp character
Voor de initiële snapshot wordt de uitvoer van het bulk-programma in tekenmodus gebruikt voor de initiële snapshot, wat vereist is voor alle niet-SQL Server-abonnees.
use_partition_groups

Opmerking: Na het gebruik van partitiegroepen, als je terugkeert naar setupbelongs, en zet use_partition_groups=false in changemergearticle, wordt dit mogelijk niet correct weergegeven nadat een snapshot is genomen. De triggers die door snapshot worden gegenereerd, zijn compliant met partitiegroepen.

De oplossing voor dit scenario is om de status op Inactief te zetten, de use_partition_groupste wijzigen en vervolgens de status op Actief te zetten.
true Publicatie maakt gebruik van vooraf berekende partities.
false Publicatie gebruikt geen vooraf berekende partities.
validate_subscriber_info Geeft een lijst van de functies die worden gebruikt om abonnee-informatie op te halen. Vervolgens valideert het de dynamische filtercriteria die voor de abonnee worden gebruikt om te verifiëren dat de informatie consistent is gepartitioneerd.
web_synchronization_url Standaardwaarde van de internet-URL die wordt gebruikt voor websynchronisatie.
NULL (standaard) Geeft de lijst met ondersteunde waarden voor @property terug.

[ @force_invalidate_snapshot = ] force_invalidate_snapshot

Erkent dat de actie die door deze opgeslagen procedure wordt uitgevoerd, een bestaande snapshot ongeldig kan maken. @force_invalidate_snapshot is bit, met een standaardwaarde van 0.

  • 0 specificeert dat het wijzigen van de publicatie de snapshot niet ongeldig maakt. Als de opgeslagen procedure detecteert dat de wijziging een nieuwe snapshot vereist, ontstaat er een fout en worden er geen wijzigingen aangebracht.

  • 1 specificeert dat het wijzigen van de publicatie de snapshot ongeldig kan maken. Als er bestaande abonnementen zijn die een nieuwe snapshot vereisen, geeft het toestemming om de bestaande snapshot als verouderd te markeren en om een nieuwe snapshot te genereren.

Zie de sectie Opmerkingen voor de eigenschappen die, wanneer gewijzigd, vereisen dat er een nieuwe snapshot wordt gegenereerd.

[ @force_reinit_subscription = ] force_reinit_subscription

Erkent dat de actie die door deze opgeslagen procedure wordt ondernomen, mogelijk vereist dat bestaande abonnementen opnieuw worden geïntialiseerd. @force_reinit_subscription is bit, met een standaardwaarde van 0.

  • 0 Geeft aan dat het wijzigen van de publicatie niet vereist dat abonnementen opnieuw geïnitiseerd worden. Als de opgeslagen procedure detecteert dat de wijziging vereist dat bestaande abonnementen opnieuw worden geïntialiseerd, treedt er een fout op en worden er geen wijzigingen aangebracht.

  • 1 betekent dat wijzigingen in de publicatie bestaande abonnementen opnieuw initialiseren, en geeft toestemming voor de herinitialisatie van het abonnement.

Zie de sectie Opmerkingen voor de eigenschappen die, wanneer gewijzigd, vereisen dat alle bestaande abonnementen opnieuw worden geïntinitiseerd.

Codewaarden retourneren

0 (geslaagd) of 1 (mislukt).

Remarks

sp_changemergepublication wordt gebruikt bij merge-replicatie.

Het wijzigen van de volgende eigenschappen vereist dat er een nieuwe snapshot wordt gegenereerd. Je moet een waarde van 1 specificeren voor de @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 (alleen aan 80SP3 )
  • pre_snapshot_script
  • snapshot_in_defaultfolder
  • sync_mode
  • use_partition_groups

Het wijzigen van de volgende eigenschappen vereist dat bestaande abonnementen opnieuw worden geïntialiseerd. Je moet een waarde van 1 specificeren voor de @force_reinit_subscription parameter.

  • dynamic_filters
  • validate_subscriber_info

Om publicatieobjecten aan Active Directory te vermelden via publish_to_active_directory, moet het SQL Server-object al in Active Directory zijn aangemaakt.

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

Alleen leden van de sysadmin-vaste serverrol of db_owner vaste databaserol kunnen uitvoeren sp_changemergepublication.