sys.sp_addmergepushsubscription_agent (Transact-SQL)

Van toepassing op:SQL ServerAzure SQL Managed Instance

Voegt een nieuwe agenttaak toe die wordt gebruikt om de synchronisatie van een push-abonnement te plannen met een mergepublicatie. Deze opgeslagen procedure wordt uitgevoerd bij Publisher in de publicatiedatabase.

Important

Bij het configureren van een Publisher met een externe Distributor worden de waarden die voor alle parameters, inclusief @job_login en @job_password, als platte tekst naar de Distributor gestuurd. Versleutel de verbinding tussen publisher en de externe distributeur voordat u deze opgeslagen procedure uitvoert. Zie SQL Server Database Engine configureren voor het versleutelen van verbindingenvoor meer informatie.

Transact-SQL syntaxis-conventies

Note

Microsoft Entra ID werd voorheen Azure Active Directory (Azure AD) genoemd.

Syntax

sys.sp_addmergepushsubscription_agent
    [ @publication = ] N'publication'
    [ , [ @subscriber = ] N'subscriber' ]
    [ , [ @subscriber_db = ] N'subscriber_db' ]
    [ , [ @subscriber_security_mode = ] subscriber_security_mode ]
    [ , [ @subscriber_login = ] N'subscriber_login' ]
    [ , [ @subscriber_password = ] N'subscriber_password' ]
    [ , [ @publisher_security_mode = ] publisher_security_mode ]
    [ , [ @publisher_login = ] N'publisher_login' ]
    [ , [ @publisher_password = ] N'publisher_password' ]
    [ , [ @job_login = ] N'job_login' ]
    [ , [ @job_password = ] N'job_password' ]
    [ , [ @job_name = ] N'job_name' ]
    [ , [ @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 ]
    [ , [ @enabled_for_syncmgr = ] N'enabled_for_syncmgr' ]
[ ; ]

Arguments

[ @publication = ] N'publicatie'

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

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

[ @subscriber_security_mode = ] subscriber_security_mode

De beveiligingsmodus om te gebruiken bij het verbinden met een abonnee tijdens synchronisatie. @subscriber_security_mode is smallint, met een standaard van 1. De volgende waarden definiëren de beveiligingsmodus:

  • 0 specificeert SQL Server-authenticatie.
  • 1 specificeert Windows-authenticatie.
  • 2specificeert Microsoft Entra-wachtwoordauthenticatie, beginnend met SQL Server 2022 (16.x) CU 6.
  • 3specificeert Microsoft Entra geïntegreerde authenticatie, beginnend met SQL Server 2022 (16.x) CU 6.
  • 4specificeert Microsoft Entra tokenauthenticatie, beginnend met SQL Server 2022 (16.x) CU 6.

Important

Gebruik waar mogelijk Windows-verificatie.

[ @subscriber_login = ] N'subscriber_login'

De abonnee logt in bij het verbinden met een abonnee tijdens synchronisatie. @subscriber_login is een systeemnaam, met als standaard .NULL @subscriber_login is vereist als @subscriber_security_mode is ingesteld op 0.

[ @subscriber_password = ] N'subscriber_password'

Het abonneewachtwoord voor SQL Server-authenticatie. @subscriber_password is een systeemnaam, met als standaard NULL. @subscriber_password is vereist als @subscriber_security_mode is ingesteld op 0. Als een abonneewachtwoord wordt gebruikt, wordt dit automatisch versleuteld.

Important

Indien mogelijk vraagt u gebruikers om beveiligingsreferenties in te voeren tijdens runtime. Als u referenties in een scriptbestand moet opslaan, moet u het bestand beveiligen om onbevoegde toegang te voorkomen.

[ @publisher_security_mode = ] publisher_security_mode

De beveiligingsmodus die je gebruikt bij het verbinden met een uitgever bij synchronisatie. @publisher_security_mode is smallint, met een standaard van 1. De volgende waarden definiëren de beveiligingsmodus:

  • 0 specificeert SQL Server-authenticatie.
  • 1 specificeert Windows-authenticatie.
  • 2specificeert Microsoft Entra-wachtwoordauthenticatie, beginnend met SQL Server 2022 (16.x) CU 6.
  • 3specificeert Microsoft Entra geïntegreerde authenticatie, beginnend met SQL Server 2022 (16.x) CU 6.
  • 4specificeert Microsoft Entra tokenauthenticatie, beginnend met SQL Server 2022 (16.x) CU 6.

Important

Gebruik waar mogelijk Windows-verificatie.

[ @publisher_login = ] N'publisher_login'

De login die gebruikt wordt bij het verbinden met een uitgever bij synchronisatie. @publisher_login is een systeemnaam, met als standaard .NULL

[ @publisher_password = ] N'publisher_password'

Het wachtwoord dat wordt gebruikt bij het verbinden met de uitgever. @publisher_password is een systeemnaam, met als standaard NULL.

Important

Gebruik geen leeg wachtwoord. Gebruik een sterk wachtwoord. Indien mogelijk vraagt u gebruikers om beveiligingsreferenties in te voeren tijdens runtime. Als u referenties in een scriptbestand moet opslaan, moet u het bestand beveiligen om onbevoegde toegang te voorkomen.

[ @job_login = ] N'job_login'

De login voor het Windows-account waaronder de agent draait. @job_login is nvarchar(257), met een standaard van NULL. Dit Windows-account wordt altijd gebruikt voor agentverbindingen met de Distributor en voor verbindingen met de Subscriber en Publisher bij gebruik van Windows Integrated authenticatie.

[ @job_password = ] N'job_password'

Het wachtwoord voor het Windows-account waaronder de agent draait. @job_password is sysname, zonder standaard.

Important

Indien mogelijk vraagt u gebruikers om beveiligingsreferenties in te voeren tijdens runtime. Als u referenties in een scriptbestand moet opslaan, moet u het bestand beveiligen om onbevoegde toegang te voorkomen.

[ @job_name = ] N'job_name'

De naam van een bestaande agentfunctie. @job_name is sysname, met als standaard .NULL Deze parameter wordt alleen gespecificeerd wanneer het abonnement is gesynchroniseerd met een bestaande taak in plaats van een nieuw aangemaakte taak (de standaard). Als je geen lid bent van de sysadmin fixed server-rol, moet je @job_login en @job_password specificeren wanneer je @job_name specificeert.

[ @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
2 Op aanvraag
4 Dagelijks
8 Wekelijks
16 Maandelijks
32 Maandelijkse verwant
64 Autostart
128 Terugkerend
NULL (standaard)

Note

Het specificeren van een waarde van 64 zorgt ervoor dat de Merge Agent in continue modus draait. Dit komt overeen met het instellen van de -Continuous parameter voor de agent. Zie Replicatiesamenvoegagentvoor meer informatie.

[ @frequency_interval = ] frequency_interval

De 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

De datum van de Merge Agent. Deze parameter wordt gebruikt wanneer @frequency_type is ingesteld op 32 (maandelijkse relatieve). @frequency_relative_interval is int, en kan een van de volgende 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 .0

[ @frequency_subday = ] frequency_subday

Hoe vaak moet je verzetten tijdens de vastgestelde periode? @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 pauze voor @frequency_subday. @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 .0

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

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

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

[ @enabled_for_syncmgr = ] N'enabled_for_syncmgr'

Geeft aan of het abonnement gesynchroniseerd kan worden via 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.

Codewaarden retourneren

0 (geslaagd) of 1 (mislukt).

Remarks

sp_addmergepushsubscription_agent wordt gebruikt in merge-replicatie en gebruikt functionaliteit vergelijkbaar met sp_addpushsubscription_agent.

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_addmergepushsubscription_agent.