sp_addmergepushsubscription_agent (Transact-SQL)

Si applica a: sìSQL Server (tutte le versioni supportate) SìIstanza gestita di SQL di Azure

Aggiunge un nuovo processo dell'agente utilizzato per la pianificazione della sincronizzazione di una sottoscrizione push in una replica di tipo merge. Questa stored procedure viene eseguita nel database di pubblicazione del server di pubblicazione.

Importante

Quando si configura un server di pubblicazione con un server di distribuzione remoto, i valori specificati per tutti i parametri, inclusi job_login e job_password, vengono inviati al server di distribuzione come testo normale. È consigliabile crittografare la connessione tra il server di pubblicazione e il server di distribuzione remoto prima di eseguire questa stored procedure. Per altre informazioni, vedere Abilitare le connessioni crittografate al motore di database (Gestione configurazione SQL Server).

Icona di collegamento a un argomento Convenzioni della sintassi Transact-SQL

Sintassi

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

Argomenti

[ @publication = ] 'publication' Nome della pubblicazione. publication è di tipo sysname, senza alcun valore predefinito.

[ @subscriber = ] 'subscriber' Nome del Sottoscrittore. subscriber è sysname e il valore predefinito è NULL.

[ @subscriber_db = ] 'subscriber_db' Nome del database di sottoscrizione. subscriber_db è sysname, con il valore predefinito NULL.

[ @subscriber_security_mode = ] subscriber_security_mode Modalità di sicurezza da utilizzare per la connessione a un Sottoscrittore durante la sincronizzazione. subscriber_security_mode è int, con il valore predefinito 1. Se 0, specifica SQL Server l'autenticazione di . Se 1, specifica Windows autenticazione.

[ @subscriber_login = ] 'subscriber_login' Account di accesso del Sottoscrittore da utilizzare per la connessione a un Sottoscrittore durante la sincronizzazione. subscriber_login è obbligatorio se subscriber_security_mode è impostato su 0. subscriber_login è sysname, con il valore predefinito NULL.

[ @subscriber_password = ] 'subscriber_password' Password del Sottoscrittore per SQL Server l'autenticazione di . subscriber_password è obbligatorio se subscriber_security_mode è impostato su 0. subscriber_password è sysname, con il valore predefinito NULL. Le password del Sottoscrittore vengono crittografate automaticamente.

Importante

Se possibile, richiedere agli utenti di immettere le credenziali di sicurezza in fase di esecuzione. Se è necessario archiviare le credenziali in un file script, è fondamentale proteggere il file per evitare accessi non autorizzati.

[ @publisher_security_mode = ] publisher_security_modeModalità di sicurezza da utilizzare per la connessione a un Publisher durante la sincronizzazione. publisher_security_mode è di tipo int, con il valore predefinito 1. Se 0, specifica SQL Server l'autenticazione di . Se 1, specifica Windows autenticazione.

[ @publisher_login = ] 'publisher_login'Account di accesso da utilizzare per la connessione a un Publisher durante la sincronizzazione. publisher_login è sysname, con il valore predefinito NULL.

[ @publisher_password = ] 'publisher_password'Password utilizzata per la connessione al Publisher. publisher_password è sysname, con il valore predefinito NULL.

Importante

Se possibile, richiedere agli utenti di immettere le credenziali di sicurezza in fase di esecuzione. Se è necessario archiviare le credenziali in un file script, è fondamentale proteggere il file per evitare accessi non autorizzati.

[ @job_login = ] 'job_login'Account di accesso per l'Windows con cui viene eseguito l'agente. job_login è di tipo nvarchar(257), con valore predefinito NULL. Questo account di Windows viene sempre utilizzato per le connessioni dell'agente al server di distribuzione e per le connessioni al Sottoscrittore e al server di pubblicazione in caso di utilizzo dell'autenticazione integrata di Windows.

[ @job_password = ] 'job_password'Password per l'account Windows con cui viene eseguito l'agente. job_password è sysname, senza alcun valore predefinito.

Importante

Se possibile, richiedere agli utenti di immettere le credenziali di sicurezza in fase di esecuzione. Se è necessario archiviare le credenziali in un file script, è fondamentale proteggere il file per evitare accessi non autorizzati.

[ @job_name = ] 'job_name' Nome di un processo dell'agente esistente. job_name è sysname, con un valore predefinito NULL. Questo parametro viene specificato solo quando la sottoscrizione viene sincronizzata utilizzando un processo esistente anziché un nuovo processo (impostazione predefinita). Se non si è membri del ruolo predefinito del server sysadmin , è necessario specificare job_login e job_password quando si specifica job_name.

[ @frequency_type = ] frequency_type Frequenza con cui pianificare il agente di merge. frequency_type è di tipo int e può essere uno dei valori seguenti.

Valore Descrizione
1 Singola occorrenza
2 On demand
4 Ogni giorno
8 Settimanale
16 Ogni mese
32 Mensile relativa
64 Avvio automatico
128 Periodica
NULL (predefinito)

Nota

Se si specifica un valore pari a 64, il agente di merge viene eseguito in modalità continua. Corrisponde all'impostazione del parametro -Continuous per l'agente. Per altre informazioni, vedere Replication Merge Agent.

[ @frequency_interval = ] frequency_interval Giorni in cui viene agente di merge'applicazione. frequency_interval è di tipo int e può essere uno dei valori seguenti.

Valore Descrizione
1 Sunday
2 Monday
3 Tuesday
4 Wednesday
5 Thursday
6 Friday
7 Sabato
8 Giorno
9 Giorni feriali
10 Giorni festivi
NULL (predefinito)

[ @frequency_relative_interval = ] frequency_relative_interval Data dell'agente di merge. Questo parametro viene usato quando frequency_type è impostato su 32 (relativo mensile). frequency_relative_interval è di tipo int e può essere uno dei valori seguenti.

Valore Descrizione
1 Primo
2 Secondo
4 Terzo
8 Quarto
16 Last (Ultimo)
NULL (predefinito)

[ @frequency_recurrence_factor = ] frequency_recurrence_factor Fattore di ricorrenza usato da frequency_type . frequency_recurrence_factor è di tipo int e il valore predefinito è NULL.

[ @frequency_subday = ] frequency_subday Frequenza di ripianificazione durante il periodo definito. frequency_subday è di tipo int e può essere uno dei valori seguenti.

Valore Descrizione
1 Una sola volta
2 Secondo
4 Minuto
8 Ora
NULL (predefinito)

[ @frequency_subday_interval = ] frequency_subday_interval Intervallo per frequency_subday. frequency_subday_interval è di tipo int, con valore predefinito NULL.

[ @active_start_time_of_day = ] active_start_time_of_day Ora del giorno della prima agente di merge pianificata, nel formato HHMMSS. active_start_time_of_day è di tipo int, con valore predefinito NULL.

[ @active_end_time_of_day = ] active_end_time_of_day Ora del giorno in cui l'agente di merge viene arrestata, nel formato HHMMSS. active_end_time_of_day è di tipo int e il valore predefinito è NULL.

[ @active_start_date = ] active_start_date Data della prima agente di merge pianificata, nel formato AAAAMMDD. active_start_date è di tipo int, con valore predefinito NULL.

[ @active_end_date = ] active_end_date Data dell'ultima agente di merge pianificata, nel formato AAAAMMDD. active_end_date è di tipo int, con valore predefinito NULL.

[ @enabled_for_syncmgr = ] 'enabled_for_syncmgr'Specifica se la sottoscrizione può essere sincronizzata tramite Gestione Windows sincronizzazione. enabled_for_syncmgr è di tipo nvarchar(5), con valore predefinito FALSE. Se false, la sottoscrizione non è registrata con Gestione sincronizzazione. Se true, la sottoscrizione viene registrata con Gestione sincronizzazione e può essere sincronizzata senza avviare SQL Server Management Studio .

Valori del codice restituito

0 (operazione completata) o 1 (operazione non riuscita)

Commenti

sp_addmergepushsubscription_agent viene utilizzato nella replica di tipo merge e usa funzionalità simili a sp_addpushsubscription_agent.

Esempio

-- 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 [AdventureWorks2012];
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

Autorizzazioni

Solo i membri del ruolo predefinito del server sysadmin o del db_owner predefinito del database possono eseguire sp_addmergepushsubscription_agent.

Vedere anche

Create a Push Subscription
Subscribe to Publications
sp_addmergesubscription (Transact-SQL)
sp_changemergesubscription (Transact-SQL)
sp_dropmergesubscription (Transact-SQL)
sp_helpmergesubscription (Transact-SQL)