Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:SQL Server
Azure SQL Managed Instance
Maakt een push- of pull-merge-abonnement aan. Deze opgeslagen procedure wordt uitgevoerd bij Publisher in de publicatiedatabase.
Transact-SQL syntaxis-conventies
Syntax
sys.sp_addmergesubscription
[ @publication = ] N'publication'
[ , [ @subscriber = ] N'subscriber' ]
[ , [ @subscriber_db = ] N'subscriber_db' ]
[ , [ @subscription_type = ] N'subscription_type' ]
[ , [ @subscriber_type = ] N'subscriber_type' ]
[ , [ @subscription_priority = ] subscription_priority ]
[ , [ @sync_type = ] N'sync_type' ]
[ , [ @frequency_type = ] frequency_type ]
[ , [ @frequency_interval = ] frequency_interval ]
[ , [ @frequency_relative_interval = ] frequency_relative_interval ]
[ , [ @frequency_recurrence_factor = ] frequency_recurrence_factor ]
[ , [ @frequency_subday = ] frequency_subday ]
[ , [ @frequency_subday_interval = ] frequency_subday_interval ]
[ , [ @active_start_time_of_day = ] active_start_time_of_day ]
[ , [ @active_end_time_of_day = ] active_end_time_of_day ]
[ , [ @active_start_date = ] active_start_date ]
[ , [ @active_end_date = ] active_end_date ]
[ , [ @optional_command_line = ] N'optional_command_line' ]
[ , [ @description = ] N'description' ]
[ , [ @enabled_for_syncmgr = ] N'enabled_for_syncmgr' ]
[ , [ @offloadagent = ] offloadagent ]
[ , [ @offloadserver = ] N'offloadserver' ]
[ , [ @use_interactive_resolver = ] N'use_interactive_resolver' ]
[ , [ @merge_job_name = ] N'merge_job_name' ]
[ , [ @hostname = ] N'hostname' ]
[ ; ]
Arguments
[ @publication = ] N'publicatie'
De naam van de publicatie. @publication is sysname, zonder standaard. De publicatie moet al bestaan.
[ @subscriber = ] N'abonnee'
De naam van de abonnee.
@subscriber is sysname, met als standaard .NULL
[ @subscriber_db = ] N'subscriber_db'
De naam van de abonnementsdatabase.
@subscriber_db is systeemnaam, met als standaard .NULL
[ @subscription_type = ] N'subscription_type'
Het soort abonnement.
@subscription_type is nvarchar(15), met een standaard van push.
- Als
push, wordt een push-abonnement toegevoegd en wordt de Merge Agent toegevoegd bij de Distributor. - Als
pull, wordt een pull-abonnement toegevoegd zonder een Merge Agent toe te voegen bij de Distributor.
Note
Anonieme abonnementen hoeven deze opgeslagen procedure niet te gebruiken.
[ @subscriber_type = ] N'subscriber_type'
Het type abonnee. @subscriber_type is nvarchar(15) en kan een van de volgende waarden zijn.
| Value | Description |
|---|---|
local (standaard) |
Abonnee alleen bekend bij de Publisher. |
global |
Abonnee bekend op alle servers. |
In SQL Server 2005 (9.x) en latere versies worden lokale abonnementen clientabonnementen genoemd, en globale abonnementen serverabonnementen.
[ @subscription_priority = ] subscription_priority
Een nummer dat de prioriteit voor het abonnement aangeeft.
@subscription_priority is echt, met als standaard .NULL Voor lokale en anonieme abonnementen is 0.0de prioriteit . Voor globale abonnementen moet de prioriteit kleiner zijn dan 100.0.
[ @sync_type = ] N'sync_type'
Het type abonnementssynchronisatie.
@sync_type is nvarchar(15), met een standaard van automatic.
- Als
automatic, worden het schema en de initiƫle gegevens voor gepubliceerde tabellen eerst naar de abonnee overgedragen. - Als
none, wordt aangenomen dat de abonnee het schema en de begingegevens voor gepubliceerde tabellen al heeft. Systeemtabellen en gegevens worden altijd overgedragen.
Note
We raden aan geen waarde van nonete specificeren.
[ @frequency_type = ] frequency_type
Een waarde die aangeeft wanneer de Merge Agent draait. @frequency_type is int, en kan een van de volgende waarden zijn.
| Value | Description |
|---|---|
1 |
Eenmaal |
4 |
Dagelijks |
8 |
Wekelijks |
16 |
Maandelijks |
32 |
Maandelijks, relatief tot het frequentieinterval |
64 |
Wanneer de SQL Server Agent start |
NULL (standaard) |
[ @frequency_interval = ] frequency_interval
De dag of dagen waarop de Merge Agent draait. @frequency_interval is int, en kan een van de volgende waarden zijn.
| Value | Description |
|---|---|
1 |
Zondag |
2 |
maandag |
3 |
Tuesday |
4 |
woensdag |
5 |
donderdag |
6 |
Vrijdag |
7 |
Zaterdag |
8 |
Dag |
9 |
Doordeweeks |
10 |
Weekenddagen |
NULL (standaard) |
[ @frequency_relative_interval = ] frequency_relative_interval
Het geplande samenvoegingsoptreden van het frequentieinterval in elke maand. @frequency_relative_interval is int, en kan een van deze waarden zijn.
| Value | Description |
|---|---|
1 |
First |
2 |
Second |
4 |
Third |
8 |
Fourth |
16 |
Laatste |
NULL (standaard) |
[ @frequency_recurrence_factor = ] frequency_recurrence_factor
De door @frequency_type gebruikte recurrence factor
@frequency_recurrence_factor is int, met als standaard .NULL
[ @frequency_subday = ] frequency_subday
De eenheid voor @frequency_subday_interval. @frequency_subday is int, en kan een van de volgende waarden zijn.
| Value | Description |
|---|---|
1 |
Eenmaal |
2 |
Second |
4 |
Minuut |
8 |
Uur |
NULL (standaard) |
[ @frequency_subday_interval = ] frequency_subday_interval
De frequentie van @frequency_subday tussen elke samenvoeging optreden.
@frequency_subday_interval is int, met als standaard .NULL
[ @active_start_time_of_day = ] active_start_time_of_day
Het tijdstip waarop de Merge Agent voor het eerst wordt gepland, geformatteerd als HHmmss.
@active_start_time_of_day is int, met als standaard .NULL
[ @active_end_time_of_day = ] active_end_time_of_day
Het tijdstip waarop de Merge Agent stopt met worden gepland, geformatteerd als HHmmss.
@active_end_time_of_day is int, met als standaard .NULL
[ @active_start_date = ] active_start_date
De datum waarop de Merge Agent voor het eerst wordt gepland, geformatteerd als yyyyMMdd.
@active_start_date is int, met een standaard van NULL.
[ @active_end_date = ] active_end_date
De datum waarop de Merge Agent stopt met worden gepland, geformatteerd als yyyyMMdd.
@active_end_date is int, met als standaard .NULL
[ @optional_command_line = ] N'optional_command_line'
De optionele opdrachtprompt om uit te voeren.
@optional_command_line is nvarchar(4000), met een standaard van NULL. Deze parameter wordt gebruikt om een commando toe te voegen dat de uitvoer vastlegt en opslaat in een bestand, of om een configuratiebestand of attribuut te specificeren.
[ @description = ] Beschrijving van'
Een korte beschrijving van dit samenvoegingsabonnement.
@description is nvarchar(255), met een standaard van NULL. Deze waarde wordt weergegeven door de Replication Monitor in de Friendly Name kolom, die kan worden gebruikt om de abonnementen voor een gemonitorde publicatie te sorteren.
[ @enabled_for_syncmgr = ] N'enabled_for_syncmgr'
Geeft aan of het abonnement gesynchroniseerd kan worden via Microsoft Windows Synchronization Manager.
@enabled_for_syncmgr is nvarchar(5), met als standaard .false
- Als
false, is het abonnement niet geregistreerd bij Synchronization Manager. - Als
true, is het abonnement geregistreerd bij Synchronization Manager en kan het worden gesynchroniseerd zonder SQL Server Management Studio te starten.
[ @offloadagent = ] aflaadmiddel
Geeft aan dat de agent op afstand geactiveerd kan worden.
@offloadagent is bit, met als standaard .0
Deze parameter is verouderd en wordt behouden voor achterwaartse compatibiliteit van scripts.
[ @offloadserver = ] N'offloadserver'
Specificeert de netwerknaam van de server die gebruikt moet worden voor de activatie van externe agenten.
@offloadserver is sysname, met als standaard .NULL
[ @use_interactive_resolver = ] N'use_interactive_resolver'
Maakt het toe om conflicten interactief op te lossen voor alle artikelen die interactieve oplossing mogelijk maken.
@use_interactive_resolver is nvarchar(5), met als standaard .false
[ @merge_job_name = ] N'merge_job_name'
Deze parameter is verouderd en kan niet worden ingesteld.
@merge_job_name is een sysname, met als standaard .NULL
[ @hostname = ] N'hostnaam'
Overschrijft de waarde die door HOST_NAME wordt teruggegeven wanneer deze functie wordt gebruikt in de WHERE-clausule van een geparametriseerd filter.
@hostname is sysname, met als standaard .NULL
Important
Om prestatieredenen raden we aan geen functies toe te passen op kolomnamen in geparametriseerde rijfilterclausules, zoals LEFT([MyColumn]) = SUSER_SNAME(). Als je HOST_NAME gebruikt in een filterclausule en de HOST_NAME-waarde overschrijft, kan het nodig zijn om datatypes te converteren met CONVERT. Voor meer informatie over best practices in dit geval, zie de sectie "Overschrijven van de HOST_NAME() Waarde" in het onderwerp Geparametriseerde Filters - Geparametriseerde Rijfilters.
Codewaarden retourneren
0 (geslaagd) of 1 (mislukt).
Remarks
sp_addmergesubscription wordt gebruikt bij merge-replicatie.
Wanneer sp_addmergesubscription wordt uitgevoerd door een lid van de sysadmin fixed server-rol om een push-abonnement aan te maken, wordt de Merge Agent-taak impliciet aangemaakt en draait deze onder het SQL Server Agent-serviceaccount. We raden aan om sp_addmergepushsubscription_agent uit te voeren en de inloggegevens van een andere, agent-specifieke Windows-account voor @job_login en @job_password op te geven. Zie Replication Agent Security Modelvoor meer informatie.
Examples
-- This script uses sqlcmd scripting variables. They are in the form
-- $(MyVariable). 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".
DECLARE @publication AS sysname;
DECLARE @subscriber AS sysname;
DECLARE @subscriptionDB AS sysname;
DECLARE @hostname AS sysname;
SET @publication = N'AdvWorksSalesOrdersMerge';
SET @subscriber = $(SubServer);
SET @subscriptionDB = N'AdventureWorksReplica';
SET @hostname = N'adventure-works\david8'
-- Add a push subscription to a merge publication.
USE [AdventureWorks2022];
EXEC sp_addmergesubscription
@publication = @publication,
@subscriber = @subscriber,
@subscriber_db = @subscriptionDB,
@subscription_type = N'push',
@hostname = @hostname;
--Add an agent job to synchronize the push subscription.
EXEC sp_addmergepushsubscription_agent
@publication = @publication,
@subscriber = @subscriber,
@subscriber_db = @subscriptionDB,
@job_login = $(Login),
@job_password = $(Password);
GO
Permissions
Alleen leden van de sysadmin-vaste serverrol of db_owner vaste databaserol kunnen uitvoeren sp_addmergesubscription.