sys.sp_addmergepublication (Transact-SQL)

Van toepassing op:SQL ServerAzure SQL Managed Instance

Maakt een nieuwe samenvoegpublicatie aan. Deze opgeslagen procedure wordt uitgevoerd bij de Publisher in de database die wordt gepubliceerd.

Transact-SQL syntaxis-conventies

Syntax

sys.sp_addmergepublication
    [ @publication = ] N'publication'
    [ , [ @description = ] N'description' ]
    [ , [ @retention = ] retention ]
    [ , [ @sync_mode = ] N'sync_mode' ]
    [ , [ @allow_push = ] N'allow_push' ]
    [ , [ @allow_pull = ] N'allow_pull' ]
    [ , [ @allow_anonymous = ] N'allow_anonymous' ]
    [ , [ @enabled_for_internet = ] N'enabled_for_internet' ]
    [ , [ @centralized_conflicts = ] N'centralized_conflicts' ]
    [ , [ @dynamic_filters = ] N'dynamic_filters' ]
    [ , [ @snapshot_in_defaultfolder = ] N'snapshot_in_defaultfolder' ]
    [ , [ @alt_snapshot_folder = ] N'alt_snapshot_folder' ]
    [ , [ @pre_snapshot_script = ] N'pre_snapshot_script' ]
    [ , [ @post_snapshot_script = ] N'post_snapshot_script' ]
    [ , [ @compress_snapshot = ] N'compress_snapshot' ]
    [ , [ @ftp_address = ] N'ftp_address' ]
    [ , [ @ftp_port = ] ftp_port ]
    [ , [ @ftp_subdirectory = ] N'ftp_subdirectory' ]
    [ , [ @ftp_login = ] N'ftp_login' ]
    [ , [ @ftp_password = ] N'ftp_password' ]
    [ , [ @conflict_retention = ] conflict_retention ]
    [ , [ @keep_partition_changes = ] N'keep_partition_changes' ]
    [ , [ @allow_subscription_copy = ] N'allow_subscription_copy' ]
    [ , [ @allow_synctoalternate = ] N'allow_synctoalternate' ]
    [ , [ @validate_subscriber_info = ] N'validate_subscriber_info' ]
    [ , [ @add_to_active_directory = ] N'add_to_active_directory' ]
    [ , [ @max_concurrent_merge = ] max_concurrent_merge ]
    [ , [ @max_concurrent_dynamic_snapshots = ] max_concurrent_dynamic_snapshots ]
    [ , [ @use_partition_groups = ] N'use_partition_groups' ]
    [ , [ @publication_compatibility_level = ] N'publication_compatibility_level' ]
    [ , [ @replicate_ddl = ] replicate_ddl ]
    [ , [ @allow_subscriber_initiated_snapshot = ] N'allow_subscriber_initiated_snapshot' ]
    [ , [ @allow_web_synchronization = ] N'allow_web_synchronization' ]
    [ , [ @web_synchronization_url = ] N'web_synchronization_url' ]
    [ , [ @allow_partition_realignment = ] N'allow_partition_realignment' ]
    [ , [ @retention_period_unit = ] N'retention_period_unit' ]
    [ , [ @generation_leveling_threshold = ] generation_leveling_threshold ]
    [ , [ @automatic_reinitialization_policy = ] automatic_reinitialization_policy ]
    [ , [ @conflict_logging = ] N'conflict_logging' ]
[ ; ]

Arguments

[ @publication = ] N'publicatie'

De naam van de samengevoegde publicatie die gemaakt moet worden. @publication is een systeemnaam, zonder standaard, en mag niet het trefwoord ALLzijn. De naam van de publicatie moet uniek zijn binnen de database.

[ @description = ] Geen beschrijving'

De publicatiebeschrijving. @description is nvarchar(255), met een standaard van NULL.

[ @retention = ] behoud

De retentieperiode, in retentieperiode-eenheden, waarvoor wijzigingen voor de gegeven @publication worden opgeslagen. @retention is int, met een standaard van 14. Retentieperiode-eenheden worden gedefinieerd door @retention_period_unit. Als het abonnement niet binnen de retentieperiode wordt gesynchroniseerd, en de wachtende wijzigingen die het zou hebben ontvangen worden verwijderd door een opruimoperatie bij de distributeur, verloopt het abonnement en moet het opnieuw worden geïntitialiseerd. De maximaal toegestane retentieperiode is het aantal dagen tussen 31 december 9999 en de huidige datum.

Note

De bewaarperiode voor samenvoegpublicaties heeft een respijtperiode van 24 uur voor abonnees in verschillende tijdzones. Als u bijvoorbeeld een bewaarperiode van één dag instelt, is de werkelijke bewaarperiode 48 uur.

[ @sync_mode = ] N'sync_mode'

De modus van de initiële synchronisatie van abonnees op de publicatie. @sync_mode is nvarchar(10) en kan een van de volgende waarden zijn.

Value Description
native (standaard) Produceert native-mode bulkkopie-programma-uitvoer van alle tabellen.
character Produceert bulkkopieën van het karaktermodus en uitvoer van het programma van alle tabellen. Vereist om SQL Server Compact en niet-SQL Server abonnees te ondersteunen.

[ @allow_push = ] N'allow_push'

Specificeert of push-abonnementen kunnen worden aangemaakt voor de betreffende publicatie. @allow_push is nvarchar(5), met standaard , truewat push-abonnementen op de publicatie toestaat.

[ @allow_pull = ] N'allow_pull'

Geeft aan of pull-abonnementen kunnen worden aangemaakt voor de betreffende publicatie. @allow_pull is nvarchar(5), met een standaard van true, wat het mogelijk maakt om abonnementen op de publicatie te trekken. Je moet true specificeren om SQL Server Compact-abonnees te ondersteunen.

[ @allow_anonymous = ] N'allow_anonymous'

Geeft aan of anonieme abonnementen kunnen worden aangemaakt voor de betreffende publicatie. @allow_anonymous is nvarchar(5), met een standaard van true, wat anonieme abonnementen op de publicatie toestaat. Om SQL Server Compact-abonnees te ondersteunen, moet je specificeren true.

[ @enabled_for_internet = ] N'enabled_for_internet'

Geeft aan of de publicatie is ingeschakeld voor het internet, en bepaalt of bestandsoverdrachtprotocol (FTP) gebruikt kan worden om de snapshotbestanden naar een abonnee over te dragen. @enabled_for_internet is nvarchar(5), met als standaard .false Als true, worden de synchronisatiebestanden voor de publicatie in de C:\Program Files\Microsoft SQL Server\MSSQL\MSSQL.x\Repldata\Ftp map geplaatst. De gebruiker moet de Ftp-map aanmaken. Als false, is de publicatie niet ingeschakeld voor internettoegang.

[ @centralized_conflicts = ] N'centralized_conflicts'

Deze parameter is verouderd en wordt behouden voor achterwaartse compatibiliteit van scripts. Gebruik @conflict_logging om de locatie aan te geven waar conflictrecords worden opgeslagen.

[ @dynamic_filters = ] N'dynamic_filters'

Maakt het mogelijk dat de merge-publicatie geparametriseerde rijfilters gebruikt. @dynamic_filters is nvarchar(5), met een standaard van false.

Note

Je moet deze parameter niet specificeren, maar SQL Server automatisch laten bepalen of geparametriseerde rijfilters worden gebruikt. Als je een waarde van true voor @dynamic_filters specificeert, moet je een geparametriseerd rijfilter voor het artikel definiëren. Voor meer informatie, zie Definieer en wijzig een geparametriseerd rijfilter voor een Merge-artikel.

[ @snapshot_in_defaultfolder = ] N'snapshot_in_defaultfolder'

Geeft aan of de snapshotbestanden in de standaardmap worden opgeslagen. @snapshot_in_defaultfolder is nvarchar(5), met als standaard .true Als trueu momentopnamebestanden kunt vinden in de standaardmap. Als false, worden snapshotbestanden opgeslagen op de alternatieve locatie die door @alternate_snapshot_folder is gespecificeerd. Alternatieve locaties kunnen zich op een andere server bevinden, op een netwerkschijf, of op een verwisselbare media (zoals verwisselbare schijven). Je kunt de snapshotbestanden ook opslaan op een File Transfer Protocol (FTP)-site, zodat de abonnee ze later kan ophalen. Deze parameter kan waar zijn en toch een locatie hebben die door @alt_snapshot_folder is gespecificeerd. Deze combinatie specificeert dat de snapshotbestanden zowel op de standaard- als alternatieve locatie worden opgeslagen.

[ @alt_snapshot_folder = ] N'alt_snapshot_folder'

Hiermee geeft u de locatie van de alternatieve map voor de momentopname. @alt_snapshot_folder is nvarchar(255), met een standaard van NULL.

[ @pre_snapshot_script = ] N'pre_snapshot_script'

Specificeert een pointer naar een .sql bestandslocatie. @pre_snapshot_script is nvarchar(255), met een standaard van NULL. De Merge Agent voert het pre-snapshot script uit vóór een van de gerepliceerde objectscripts wanneer de snapshot wordt toegepast op een abonnee. Het script wordt uitgevoerd in de beveiligingscontext die door de Merge Agent wordt gebruikt bij het verbinden met de abonnementsdatabase. Pre-snapshot scripts worden niet uitgevoerd op SQL Server Compact Subscribers.

[ @post_snapshot_script = ] N'post_snapshot_script'

Specificeert een pointer naar een .sql bestandslocatie. @post_snapshot_script is nvarchar(255), met een standaard van NULL. De Merge Agent voert het post-snapshot script uit nadat alle andere gerepliceerde objectscripts en data zijn toegepast tijdens een initiële synchronisatie. Het script wordt uitgevoerd in de beveiligingscontext die door de Merge Agent wordt gebruikt bij het verbinden met de abonnementsdatabase. Post-snapshot scripts worden niet uitgevoerd op SQL Server Compact Subscribers.

[ @compress_snapshot = ] N'compress_snapshot'

Specificeert dat de snapshot die naar de @alt_snapshot_folder locatie wordt geschreven, wordt gecomprimeerd in het Microsoft CAB-formaat. @compress_snapshot is nvarchar(5), met een standaard van false.

  • false specificeert dat de snapshot niet gecomprimeerd mag worden.

  • true specificeert dat de snapshot gecomprimeerd zal worden.

Snapshotbestanden die groter zijn dan 2 GB kunnen niet worden gecomprimeerd. Gecomprimeerde snapshotbestanden worden ontdrukt op de locatie waar de Merge Agent draait; pull-abonnementen worden meestal gebruikt met gecomprimeerde snapshots zodat bestanden bij de abonnee worden ontdrukt. De snapshot in de standaardmap kan niet worden gecomprimeerd. Om SQL Server Compact-abonnees te ondersteunen, moet je specificeren false.

[ @ftp_address = ] N'ftp_address'

Het netwerkadres van de FTP-service voor de distributeur. @ftp_address is sysname, met als standaard .NULL Geeft aan waar publicatiesnapshotbestanden zich bevinden voor de Merge Agent van een abonnee om op te halen. Omdat deze eigenschap voor elke publicatie wordt opgeslagen, kan elke publicatie een andere @ftp_address hebben. De publicatie moet het propageren van snapshots met FTP ondersteunen.

[ @ftp_port = ] ftp_port

Het poortnummer van de FTP-service voor de distributeur. @ftp_port is int, met als standaard .21 Geeft aan waar de publicatiesnapshotbestanden zich bevinden zodat de Merge Agent van een abonnee deze kan ophalen. Omdat deze eigenschap voor elke publicatie wordt opgeslagen, kan elke publicatie zijn eigen @ftp_port hebben.

[ @ftp_subdirectory = ] N'ftp_subdirectory'

Geeft aan waar de snapshotbestanden beschikbaar zijn voor de Merge Agent van de abonnee om op te halen of de publicatie het propageren van snapshots via FTP ondersteunt. @ftp_subdirectory is nvarchar(255), met een standaard van ftp. Omdat deze eigenschap voor elke publicatie wordt opgeslagen, kan elke publicatie zijn eigen @ftp_subdirctory hebben of ervoor kiezen geen subdirectory te hebben, aangegeven met een NULL waarde.

Bij het vooraf genereren van snapshots voor publicaties met geparametriseerde filters, moet de datasnapshot voor elke abonneepartitie in een eigen map liggen. De directorystructuur voor vooraf gegenereerde snapshots met FTP moet voldoen aan de volgende structuur:

<alternate_snapshot_folder>\ftp\<publisher_publicationDB_publication>\<partitionID>.

Note

De waarden in het vorige voorbeeld (tussen haakjes) hangen af van de specificiteit van de publicatie- en abonnee-partition.

[ @ftp_login = ] N'ftp_login'

De gebruikersnaam die wordt gebruikt om verbinding te maken met de FTP-service. @ftp_login is sysname, met als standaard .anonymous

[ @ftp_password = ] N'ftp_password'

Het gebruikerswachtwoord dat wordt gebruikt om verbinding te maken met de FTP-service. @ftp_password is sysname, met als standaard .NULL

Important

Gebruik geen leeg wachtwoord. Gebruik een sterk wachtwoord.

[ @conflict_retention = ] conflict_retention

Geeft de retentieperiode aan, in dagen, waarvoor conflicten worden behouden. @conflict_retention is int, met een standaardaantal van 14 dagen voordat de conflictdiscussie van de conflicttabel wordt verwijderd.

[ @keep_partition_changes = ] N'keep_partition_changes'

Specificeert of partitiewijzigingsoptimalisaties ingeschakeld moeten worden wanneer vooraf berekende partities niet gebruikt kunnen worden. @keep_partition_changes is nvarchar(5), met een standaard van true.

  • false dit betekent dat partitiewijzigingen niet worden geoptimaliseerd, en wanneer vooraf berekende partities niet worden gebruikt, worden de partities die naar alle abonnees worden gestuurd geverifieerd wanneer gegevens in een partitie veranderen.

  • true betekent dat partitiewijzigingen worden geoptimaliseerd en alleen abonnees met rijen in de gewijzigde partities worden beïnvloed.

Bij gebruik van vooraf berekende partities zet @use_partition_groups op true en zet @keep_partition_changes op false. Voor meer informatie, zie Geparametriseerde Filters - Optimaliseer voor vooraf berekende partities.

Note

Als je een waarde van true specificeert voor @keep_partition_changes, geef dan een waarde van 1 voor de parameter Snapshot Agent -MaxNetworkOptimization. Voor meer informatie over deze parameter, zie Replication Snapshot Agent. Voor informatie over hoe agentparameters te specificeren, zie Replication Agent Administration.

Bij SQL Server Compact-abonnees moet @keep_partition_changes worden ingesteld op true om ervoor te zorgen dat verwijderingen correct worden verspreid. Wanneer ingesteld op false, kan de abonnee meer rijen hebben dan verwacht.

[ @allow_subscription_copy = ] N'allow_subscription_copy'

Maakt het mogelijk of schakelt de mogelijkheid uit om de abonnementsdatabases te kopiëren die zich op deze publicatie abonneren. @allow_subscription_copy is nvarchar(5), met een standaard van false. De omvang van de gekopieerde abonnementsdatabase moet minder dan 2 GB zijn.

[ @allow_synctoalternate = ] N'allow_synctoalternate'

Alleen ter informatie geïdentificeerd. Wordt niet ondersteund. Toekomstige compatibiliteit is niet gegarandeerd.

[ @validate_subscriber_info = ] N'validate_subscriber_info'

Geeft een lijst van de functies die worden gebruikt om een abonneepartitie van de gepubliceerde data te definiëren wanneer geparametriseerde rijfilters worden gebruikt. @validate_subscriber_info is nvarchar(500), met als standaard .NULL Deze informatie wordt door de Merge Agent gebruikt om de partitie van de abonnee te valideren. Als bijvoorbeeld SUSER_SNAME wordt gebruikt in het geparametriseerde rijfilter, moet de parameter zijn @validate_subscriber_info=N'SUSER_SNAME().

Note

Je moet deze parameter niet specificeren, maar SQL Server automatisch het filtercriterium laten bepalen.

[ @add_to_active_directory = ] N'add_to_active_directory'

Deze parameter is verouderd en wordt behouden voor achterwaartse compatibiliteit van scripts. Je kunt geen publicatie-informatie meer toevoegen aan de Microsoft Active Directory.

[ @max_concurrent_merge = ] max_concurrent_merge

Het maximale aantal gelijktijdige samenvoegingsprocessen. @max_concurrent_merge is int, met als standaard .0 Een waarde van 0 for betekent dat er geen limiet is aan het aantal gelijktijdige mergeprocessen dat op een bepaald moment draait.

Deze eigenschap stelt een limiet aan het aantal gelijktijdige samenvoegingsprocessen dat tegelijk tegen een samenvoegpublicatie kan worden uitgevoerd. Als er meer mergeprocessen tegelijk gepland staan dan de toegestane waarde mag uitvoeren, worden de overtollige taken in een wachtrij geplaatst en wacht tot een momenteel draaiend mergeproces is afgerond.

[ @max_concurrent_dynamic_snapshots = ] max_concurrent_dynamic_snapshots

Het maximale aantal Snapshot Agent-sessies dat gelijktijdig kan worden uitgevoerd om gefilterde datasnapshots voor abonneepartities te genereren. @max_concurrent_dynamic_snapshots is int, met als standaard .0 Als 0, is er geen limiet aan het aantal snapshotsessies. Als er meer snapshot-processen tegelijk gepland staan dan de toegestane waarde mag uitvoeren, worden de overtollige taken in een wachtrij geplaatst en gewacht tot een momenteel draaiend snapshotproces is voltooid.

[ @use_partition_groups = ] N'use_partition_groups'

Specificeert dat vooraf berekende partities gebruikt moeten worden om het synchronisatieproces te optimaliseren. @use_partition_groups is nvarchar(5) en kan een van deze waarden zijn:

Value Description
true Publicatie maakt gebruik van vooraf berekende partities.
false Publicatie gebruikt geen vooraf berekende partities.
NULL (standaard) Het systeem bepaalt de partitioneringsstrategie.

Vooraf berekende partities worden standaard gebruikt. Om het gebruik van vooraf berekende partities te vermijden, moet @use_partition_groups worden ingesteld op false. Wanneer NULL, beslist het systeem of vooraf berekende partities gebruikt kunnen worden. Als vooraf berekende partities niet gebruikt kunnen worden, wordt deze waarde effectief zonder false fouten te genereren. In zulke gevallen kan @keep_partition_changes worden ingesteld op true om enige optimalisatie te bieden. Voor meer informatie, zie Parameterized Filters - Parameterized Row Filters en Parameterized Filters - Optimize for Precalculated Partitions.

[ @publication_compatibility_level = ] N'publication_compatibility_level'

Geeft de achterwaartse compatibiliteit van de publicatie aan. @publication_compatibility_level is nvarchar(6), en kan een van deze waarden zijn:

Value Versie
90RTM SQL Server 2005 (9.x)
100RTM SQL Server 2008 (10.0.x)

[ @replicate_ddl = ] replicate_ddl

Geeft aan of schemareplicatie wordt ondersteund voor de publicatie. @replicate_ddl is int, met als standaard .NULL 1 geeft aan dat DDL-instructies (Data Definition Language) die worden uitgevoerd bij de uitgever, worden gerepliceerd en 0 geeft aan dat DDL-instructies niet worden gerepliceerd. Zie Schemawijzigingen aanbrengen in publicatiedatabasesvoor meer informatie.

De @replicate_ddl-parameter wordt gerespecteerd wanneer een DDL-instructie een kolom toevoegt. De parameter @replicate_ddl wordt genegeerd wanneer een DDL-instructie een kolom wijzigt of weglaat om de volgende redenen.

  • Wanneer een kolom wordt verwijderd, sysarticlecolumns moet deze worden bijgewerkt om te voorkomen dat nieuwe DML-statements de weggelaten kolom bevatten die de distributieagent zou laten falen. De parameter @replicate_ddl wordt genegeerd omdat replicatie altijd de schemawijziging moet repliceren.

  • Wanneer een kolom wordt gewijzigd, kan het brondatatype of de nulbaarheid zijn veranderd, waardoor DML-statements een waarde bevatten die mogelijk niet compatibel is met de tabel bij de abonnee. Dergelijke DML-statements kunnen ervoor zorgen dat de distributieagent faalt. De parameter @replicate_ddl wordt genegeerd omdat replicatie altijd de schemawijziging moet repliceren.

  • Wanneer een DDL-instructie een nieuwe kolom toevoegt, sysarticlecolumns bevat die de nieuwe kolom niet. DML-instructies proberen geen data voor de nieuwe kolom te repliceren. De parameter wordt gerespecteerd omdat het wel of niet repliceren van de DDL acceptabel is.

[ @allow_subscriber_initiated_snapshot = ] N'allow_subscriber_initiated_snapshot'

Geeft aan of abonnees van deze publicatie het snapshotproces kunnen starten om de gefilterde snapshot voor hun datapartitie te genereren. @allow_subscriber_initiated_snapshot is nvarchar(5), met als standaard .false true geeft aan dat abonnees het snapshotproces kunnen starten.

[ @allow_web_synchronization = ] N'allow_web_synchronization'

Geeft aan of de publicatie is ingeschakeld voor websynchronisatie. @allow_web_synchronization is nvarchar(5), met een standaard van false. true specificeert dat abonnementen op deze publicatie gesynchroniseerd kunnen worden via HTTPS. Zie Websynchronisatie voor samenvoegreplicatie voor meer informatie. Om SQL Server Compact-abonnees te ondersteunen, moet je specificeren true.

[ @web_synchronization_url = ] N'web_synchronization_url'

Specificeert de standaardwaarde van de internet-URL die wordt gebruikt voor websynchronisatie. @web_synchronization_url is nvarchar(500), met als standaard .NULL Definieert de standaard internet-URL als er niet expliciet een is ingesteld wanneer sp_addmergepullsubscription_agent wordt uitgevoerd.

[ @allow_partition_realignment = ] N'allow_partition_realignment'

Bepaalt of verwijderingen naar de abonnee worden gestuurd wanneer wijziging van de rij op de uitgever ervoor zorgt dat deze zijn partitie verandert. @allow_partition_realignment is nvarchar(5), met als standaard .true

  • true verwijderingen naar de abonnee stuurt om de resultaten van een partitiewijziging weer te geven door gegevens te verwijderen die niet langer deel uitmaken van de partitie van de abonnee.

  • falseverlaat de gegevens van een oude partitie op de abonnee, waar wijzigingen die aan deze gegevens op de Publisher zijn gemaakt niet naar deze abonnee worden gerepliceerd, maar wijzigingen op de abonnee naar de Publisher worden gerepliceerd.

Het instellen van @allow_partition_realignmentfalse op wordt gebruikt om gegevens in een abonnement van een oude partitie te bewaren wanneer de gegevens toegankelijk moeten zijn voor historische doeleinden.

Note

Data die bij de abonnee blijft als gevolg van het instellen van @allow_partition_realignment op false moet worden behandeld alsof het alleen-lezen is; dit wordt echter niet afgedwongen door het replicatiesysteem.

[ @retention_period_unit = ] N'retention_period_unit'

Specificeert de eenheden voor de retentieperiode die door @retention is vastgesteld. @retention_period_unit is nvarchar(10) en kan een van de volgende waarden zijn.

Value Versie
day (standaard) 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.

[ @generation_leveling_threshold = ] generation_leveling_threshold

Specificeert het aantal wijzigingen dat in een generatie is opgenomen. Een generatie is een verzameling wijzigingen die worden geleverd aan een Publisher of Abonnee. @generation_leveling_threshold is int, met als standaard .1000

[ @automatic_reinitialization_policy = ] automatic_reinitialization_policy

Specificeert of wijzigingen worden geüpload vanuit de abonnee vóór een automatische herinitialisatie die vereist is door een wijziging in de publicatie, waarbij een waarde van 1 voor @force_reinit_subscription is opgegeven. @automatic_reinitialization_policy is bit, met als standaard .0

1 betekent dat wijzigingen vanuit de abonnee worden geüpload voordat een automatische herinitialisatie plaatsvindt.

Important

Als je een geparametriseerd filter toevoegt, verwijdert of verandert, kunnen in afwachting van wijzigingen bij de abonnee niet worden geüpload naar de Publisher tijdens de herinitialisatie. Als u wachtende wijzigingen wilt uploaden, synchroniseert u alle abonnementen voordat u het filter wijzigt.

[ @conflict_logging = ] N'conflict_logging'

Geeft aan waar conflictgegevens worden opgeslagen. @conflict_logging is nvarchar(15) en kan een van de volgende waarden zijn:

Value Description
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.
NULL (standaard) Replicatie stelt @conflict_logging automatisch in op both wanneer de waarde @publication_compatibility_level is 90RTM en in publisher alle andere gevallen.

Codewaarden retourneren

0 (geslaagd) of 1 (mislukt).

Remarks

sp_addmergepublication wordt gebruikt bij merge-replicatie.

Om publicatieobjecten aan de Active Directory te vermelden met de @add_to_active_directory-parameter, moet het SQL Server-object al in de Active Directory zijn aangemaakt.

Als er meerdere publicaties bestaan die hetzelfde databaseobject publiceren, kun publicaties met een @replicate_ddl waarde van 1 repliceren ALTER TABLE, ALTER VIEW, ALTER PROCEDURE, ALTER FUNCTION, en ALTER TRIGGER DDL-uitspraken. Echter, een ALTER TABLE DROP COLUMN DDL-verklaring zal worden gerepliceerd door alle publicaties die de verwijderde kolom publiceren.

Voor SQL Server Compact-abonnees wordt de waarde van @alternate_snapshot_folder alleen gebruikt wanneer de waarde van @snapshot_in_default_folder isfalse.

Met DDL-replicatie ingeschakeld (@replicate_ddl = 1) voor een publicatie, moet sp_changemergepublication om niet-replicerende DDL-wijzigingen aan te brengen eerst worden uitgevoerd om @replicate_ddl0op te stellen. Nadat de niet-replicerende DDL-instructies zijn uitgegeven, sp_changemergepublication kan opnieuw worden uitgevoerd om DDL-replicatie weer aan te schakelen.

Examples

-- To avoid storing the login and password in the script file, the value 
-- is passed into SQLCMD as a scripting variable. For information about 
-- how to use scripting variables on the command line and in SQL Server
-- Management Studio, see the "Executing Replication Scripts" section in
-- the topic "Programming Replication Using System Stored Procedures".

--Declarations for adding a merge publication
DECLARE @publicationDB AS sysname;
DECLARE @publication AS sysname;
DECLARE @login AS sysname;
DECLARE @password AS sysname;
SET @publicationDB = N'AdventureWorks2022'; 
SET @publication = N'AdvWorksSalesOrdersMerge'; 
SET @login = $(Login);
SET @password = $(Password);

-- Enable merge replication on the publication database, using defaults.
USE master
EXEC sp_replicationdboption 
  @dbname=@publicationDB, 
  @optname=N'merge publish',
  @value = N'true' 

-- Create a new merge publication, explicitly setting the defaults. 
USE [AdventureWorks2022]
EXEC sp_addmergepublication 
-- These parameters are optional.
  @publication = @publication,
  -- optional parameters 
  @description = N'Merge publication of AdventureWorks2022.',
  @publication_compatibility_level  = N'120RTM';

-- Create a new snapshot job for the publication.
EXEC sp_addpublication_snapshot 
  @publication = @publication, 
  @job_login = @login, 
  @job_password = @password;
GO

Permissions

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