sp_addmergepullsubscription_agent (Transact-SQL)

Aggiunge un nuovo processo agente utilizzato per pianificare la sincronizzazione di una sottoscrizione pull con una pubblicazione di tipo merge. Questa stored procedure viene eseguita nel database di sottoscrizione del Sottoscrittore.

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

Sintassi

sp_addmergepullsubscription_agent [ [ @name = ] 'name' ] 
        , [ @publisher = ] 'publisher'  
        , [ @publisher_db = ] 'publisher_db' 
        , [ @publication =] 'publication' 
    [ , [ @publisher_security_mod e= ] publisher_security_mode ] 
    [ , [ @publisher_login = ] 'publisher_login' ] 
    [ , [ @publisher_password = ] 'publisher_password' ] 
    [ , [ @publisher_encrypted_password = ] publisher_encrypted_password ] 
    [ , [ @subscriber = ] 'subscriber' ] 
    [ , [ @subscriber_db = ] 'subscriber_db' ] 
    [ , [ @subscriber_security_mode = ] subscriber_security_mode ] 
    [ , [ @subscriber_login = ] 'subscriber_login' ] 
    [ , [ @subscriber_password= ] 'subscriber_password' ] 
    [ , [ @distributor = ] 'distributor' ] 
    [ , [ @distributor_security_mode = ] distributor_security_mode ] 
    [ , [ @distributor_login = ] 'distributor_login' ] 
    [ , [ @distributor_password = ] 'distributor_password' ] 
    [ , [ @encrypted_password = ] encrypted_password ] 
    [ , [ @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 = ] 'optional_command_line' ] 
    [ , [ @merge_jobid = ] merge_jobid ] 
    [ , [ @enabled_for_syncmgr = ] 'enabled_for_syncmgr' ] 
    [ , [ @ftp_address = ] 'ftp_address' ] 
    [ , [ @ftp_port = ] ftp_port ] 
    [ , [ @ftp_login = ] 'ftp_login' ] 
    [ , [ @ftp_password = ] 'ftp_password' ]  
    [ , [ @alt_snapshot_folder = ] 'alternate_snapshot_folder' ] 
    [ , [ @working_directory = ] 'working_directory' ] 
    [ , [ @use_ftp = ] 'use_ftp' ] 
    [ , [ @reserved = ] 'reserved' ] 
    [ , [ @use_interactive_resolver = ] 'use_interactive_resolver' ] 
    [ , [ @offloadagent = ] 'remote_agent_activation' ] 
    [ , [ @offloadserver = ] 'remote_agent_server_name'] 
    [ , [ @job_name = ] 'job_name' ] 
    [ , [ @dynamic_snapshot_location = ] 'dynamic_snapshot_location' ]
    [ , [ @use_web_sync = ] use_web_sync ]
        [ , [ @internet_url = ] 'internet_url' ]
    [ , [ @internet_login = ] 'internet_login' ]
        [ , [ @internet_password = ] 'internet_password' ]
    [ , [ @internet_security_mode = ] internet_security_mode ]
        [ , [ @internet_timeout = ] internet_timeout ]
    [ , [ @hostname = ] 'hostname' ]
        [ , [ @job_login = ] 'job_login' ] 
    [ , [ @job_password = ] 'job_password' ] 

Argomenti

  • [ @name = ] 'name'
    Nome dell'agente. name è di tipo sysname e il valore predefinito è NULL.

  • [ @publisher = ] 'publisher'
    Nome del server di pubblicazione. publisher è di tipo sysname e non prevede alcun valore predefinito.

  • [ @publisher_db = ] 'publisher_db'
    Nome del database del server di pubblicazione. publisher_db è di tipo sysname e non prevede alcun valore predefinito.

  • [ @publication = ] 'publication'
    Nome della pubblicazione. publication è di tipo sysname e non prevede alcun valore predefinito.

  • [ @publisher_security_mode = ] publisher_security_mode
    Modalità di sicurezza da utilizzare quando si effettua la connessione a un server di pubblicazione per la sincronizzazione. publisher_security_mode è di tipo int e il valore predefinito è 1. Se è 0, viene utilizzata l'autenticazione di SQL Server. Se è 1 viene utilizzata l'autenticazione di Windows.

    Nota sulla sicurezzaNota sulla sicurezza

    Se possibile, utilizzare l'autenticazione di Windows.

  • [ @publisher_login = ] 'publisher_login'
    Account di accesso da utilizzare per la connessione a un server di pubblicazione in fase di sincronizzazione. publisher_login è di tipo sysname e il valore predefinito è NULL.

  • [ @publisher_password = ] 'publisher_password'
    Password utilizzata per la connessione al server di pubblicazione. publisher_password è di tipo sysname e il valore predefinito è NULL.

    Nota sulla sicurezzaNota sulla sicurezza

    Non utilizzare una password vuota. Utilizzare una password complessa. 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_encrypted_password = ]publisher_encrypted_password
    L'impostazione di publisher_encrypted_password non è più supportata. Se si tenta di impostare questo parametro di tipo bit su 1, verrà generato un errore.

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

  • [ @subscriber_db = ] 'subscriber_db'
    Nome del database di sottoscrizione. subscriber_db è di tipo sysname e il valore predefinito è NULL.

  • [ @subscriber_security_mode = ] subscriber_security_mode
    Modalità di sicurezza da utilizzare quando si effettua la connessione a un Sottoscrittore per la sincronizzazione. subscriber_security_mode è di tipo int e il valore predefinito è 1. Se è 0, viene utilizzata l'autenticazione di SQL Server. Se è 1 viene utilizzata l'autenticazione di Windows.

    [!NOTA]

    Questo parametro è deprecato ed è ancora disponibile per compatibilità con gli script di versioni precedenti. L'agente di merge si connette sempre al Sottoscrittore locale utilizzando l'autenticazione di Windows. Se si specifica un valore per questo parametro, viene restituito un messaggio di avviso ma il valore viene ignorato.

  • [ @subscriber_login = ] 'subscriber_login'
    Account di accesso da utilizzare quando ci si connette a un Sottoscrittore per la sincronizzazione. subscriber_login è obbligatorio se subscriber_security_mode è impostato su 0. subscriber_login è di tipo sysname e il valore predefinito è NULL.

    [!NOTA]

    Questo parametro è deprecato ed è ancora disponibile per compatibilità con gli script di versioni precedenti. Se si specifica un valore per questo parametro, viene restituito un messaggio di avviso, ma il valore viene ignorato.

  • [ @subscriber_password = ] 'subscriber_password'
    Password del Sottoscrittore per l'autenticazione di SQL Server. subscriber_password è obbligatorio se subscriber_security_mode è impostato su 0. subscriber_password è di tipo sysname e il valore predefinito è NULL.

    [!NOTA]

    Questo parametro è deprecato ed è ancora disponibile per compatibilità con gli script di versioni precedenti. Se si specifica un valore per questo parametro, viene restituito un messaggio di avviso, ma il valore viene ignorato.

  • [ @distributor = ] 'distributor'
    Nome del server di distribuzione. distributor è di tipo sysname e il valore predefinito è publisher, a indicare che il server di pubblicazione coincide con il server di distribuzione.

  • [ @distributor_security_mode = ] distributor_security_mode
    Modalità di sicurezza da utilizzare quando si effettua la connessione a un server di distribuzione per la sincronizzazione. distributor_security_mode è di tipo int e il valore predefinito è 0. Il valore 0 indica l'autenticazione di SQL Server. 1 specifica l'autenticazione di Windows.

    Nota sulla sicurezzaNota sulla sicurezza

    Se possibile, utilizzare l'autenticazione di Windows.

  • [ @distributor_login = ] 'distributor_login'
    Account di accesso da utilizzare quando ci si connette a un server di distribuzione per la sincronizzazione. distributor_login è necessario se distributor_security_mode è impostato su 0. distributor_login è di tipo sysname e il valore predefinito è NULL.

  • [ @distributor_password = ] 'distributor_password'
    Password del server di distribuzione. distributor_password è obbligatorio se distributor_security_mode è impostato su 0. distributor_password è di tipo sysname e il valore predefinito è NULL.

    Nota sulla sicurezzaNota sulla sicurezza

    Non utilizzare una password vuota. Utilizzare una password complessa. 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.

  • [ @encrypted_password = ] encrypted_password
    L'impostazione di encrypted_password non è più supportata. Se si tenta di impostare questo parametro di tipo bit su 1, verrà generato un errore.

  • [ @frequency_type = ] frequency_type
    Frequenza per l'esecuzione pianificata dell'agente di merge. frequency_type è di tipo int. I valori possibili sono i seguenti.

    Valore

    Descrizione

    1

    Una volta

    2

    Su richiesta

    4

    Giornaliera

    8

    Settimanale

    16

    Mensile

    32

    Mensile relativa

    64

    Avvio automatico

    128

    Periodica

    NULL (predefinito)

     

    [!NOTA]

    Se si specifica il valore 64, l'agente di merge verrà eseguito in modalità continua, come se per l'agente fosse impostato il parametro -Continuous. Per ulteriori informazioni, vedere Agente merge repliche.

  • [ @frequency_interval = ] frequency_interval
    Giorno o giorni in cui viene eseguito l'agente di merge. frequency_interval è di tipo int. I valori possibili sono i seguenti.

    Valore

    Descrizione

    1

    Domenica

    2

    Lunedì

    3

    Martedì

    4

    Mercoledì

    5

    Giovedì

    6

    Venerdì

    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 utilizzato quando frequency_type è impostato su 32 (mensile relativa). frequency_relative_interval è di tipo int. I valori possibili sono i seguenti.

    Valore

    Descrizione

    1

    Primo

    2

    Secondo

    4

    Terzo

    8

    Quarto

    16

    Ultimo

    NULL (predefinito)

     

  • [ @frequency_recurrence_factor = ] frequency_recurrence_factor
    Fattore di occorrenza utilizzato 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. I valori possibili sono i seguenti.

    Valore

    Descrizione

    1

    Una volta sola

    2

    Secondo

    4

    Minuto

    8

    Ora

    NULL (predefinito)

     

  • [ @frequency_subday_interval = ] frequency_subday_interval
    Intervallo per frequency_subday. frequency_subday_interval è di tipo int e il valore predefinito è NULL.

  • [ @active_start_time_of_day=] active_start_time_of_day
    Ora del giorno della prima esecuzione pianificata dell'agente di merge, nel formato HHMMSS. active_start_time_of_day è di tipo int e il valore predefinito è NULL.

  • [ @active_end_time_of_day = ] active_end_time_of_day
    Ora del giorno dell'ultima esecuzione pianificata dell'agente di merge, 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 esecuzione pianificata dell'agente di merge, nel formato AAAAMMGG. active_start_date è di tipo int e il valore predefinito è NULL.

  • [ @active_end_date = ] active_end_date
    Data dell'ultima esecuzione pianificata dell'agente di merge, nel formato AAAAMMGG. active_end_date è di tipo int e il valore predefinito è NULL.

  • [ @optional_command_line = ] 'optional_command_line'
    Prompt dei comandi facoltativo specificato per l'agente di merge. optional_command_line è di tipo nvarchar(255) e il valore predefinito è ' '. Può essere utilizzato per rendere disponibili ulteriori parametri all'agente di merge, come nell'esempio seguente, in cui il timeout predefinito per le query viene aumentato a 600:

    @optional_command_line = N'-QueryTimeOut 600'
    
  • [ @merge_jobid = ] merge_jobid
    Parametro di output per l'ID del processo. merge_jobid è di tipo binary(16) e il valore predefinito è NULL.

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

  • [ @ftp_address = ] 'ftp_address'
    Disponibile solo per compatibilità con le versioni precedenti.

  • [ @ftp_port = ] ftp_port
    Disponibile solo per compatibilità con le versioni precedenti.

  • [ @ftp_login = ] 'ftp_login'
    Disponibile solo per compatibilità con le versioni precedenti.

  • [ @ftp_password = ] 'ftp_password'
    Disponibile per compatibilità con le versioni precedenti.

  • [ @alt_snapshot_folder = ] 'alternate_snapshot_folder'
    Posizione da cui prelevare i file di snapshot. alternate_snapshot_folder è di tipo nvarchar(255) e il valore predefinito è NULL. che indica che i file di snapshot vengono prelevati dal percorso predefinito specificato dal server di pubblicazione.

  • [ @working_directory = ] 'working_directory'
    Nome della directory di lavoro utilizzata per l'archiviazione temporanea dei file di dati e dello schema della pubblicazione quando i file di snapshot vengono trasferiti tramite FTP. working_directory è di tipo nvarchar(255) e il valore predefinito è NULL.

  • [ @use_ftp = ] 'use_ftp'
    Specifica l'utilizzo di FTP anziché del protocollo utilizzato normalmente per il recupero degli snapshot. use_ftp è di tipo nvarchar(5) e il valore predefinito è FALSE.

  • [ @reserved = ] 'reserved'
    Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.

  • [ @use_interactive_resolver = ] 'use_interactive_resolver' ]
    Specifica l'utilizzo del sistema di risoluzione interattivo per tutti gli articoli che supportano la risoluzione interattiva. use_interactive_resolver è di tipo nvarchar(5) e il valore predefinito è FALSE.

  • [ @offloadagent = ] 'remote_agent_activation'

    [!NOTA]

    L'attivazione remota dell'agente è deprecata e non è più supportata. Questo parametro è supportato solo per compatibilità con gli script di versioni precedenti. Se si imposta remote_agent_activation su un valore diverso da false, verrà generato un errore.

  • [ @offloadserver = ] 'remote_agent_server_name'

    [!NOTA]

    L'attivazione remota dell'agente è deprecata e non è più supportata. Questo parametro è supportato solo per compatibilità con gli script di versioni precedenti. Se si imposta remote_agent_server_name su un valore diverso da NULL, verrà generato un errore.

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

  • [ @dynamic_snapshot_location = ] 'dynamic_snapshot_location' ]
    Percorso della cartella in cui vengono letti i file di snapshot se è necessario utilizzare uno snapshot dei dati filtrati. dynamic_snapshot_location è di tipo nvarchar(260) e il valore predefinito è NULL. Per ulteriori informazioni, vedere Filtri di riga con parametri.

  • [ @use_web_sync = ] use_web_sync
    Indica che la sincronizzazione Web è abilitata. use_web_sync è di tipo bit e il valore predefinito è 0. 1 specifica che la sottoscrizione pull può essere sincronizzata in Internet tramite HTTP.

  • [ @internet_url = ] 'internet_url'
    Percorso del listener per la replica (REPLISAPI.DLL) per la sincronizzazione Web. internet_url è di tipo nvarchar(260) e il valore predefinito è NULL. internet_url è un URL completo nel formato http://server.domain.com/directory/replisapi.dll. Se il server è configurato per l'attesa su una porta diversa dalla porta 80, è necessario specificare anche il numero di porta nel formato http://server.domain.com:portnumber/directory/replisapi.dll, dove portnumber rappresenta la porta.

  • [ @internet_login = ] 'internet_login'
    Account di accesso utilizzato dall'agente di merge per la connessione al server Web che ospita la sincronizzazione Web tramite l'autenticazione di base HTTP. internet_login è di tipo sysname e il valore predefinito è NULL.

  • [ @internet_password = ] 'internet_password'
    Password utilizzata dall'agente di merge per la connessione al server Web che ospita la sincronizzazione Web tramite l'autenticazione di base HTTP. internet_password è di tipo nvarchar(524) e il valore predefinito è NULL.

    Nota sulla sicurezzaNota sulla sicurezza

    Non utilizzare una password vuota. Utilizzare una password complessa.

  • [ @internet_security_mode = ] internet_security_mode
    Metodo di autenticazione utilizzato dall'agente di merge per la connessione al server Web durante la sincronizzazione Web tramite HTTPS. internet_security_mode è di tipo int. I valori possibili sono i seguenti.

    Valore

    Descrizione

    0

    Viene utilizzata l'autenticazione di base.

    1 (predefinito)

    Viene utilizzata l'autenticazione integrata di Windows.

    [!NOTA]

    È consigliabile utilizzare l'autenticazione di base con la sincronizzazione Web. Per utilizzare la sincronizzazione Web è necessario stabilire una connessione SSL al server Web. Per ulteriori informazioni, vedere Configurazione della sincronizzazione Web.

  • [ @internet_timeout = ] internet_timeout
    Periodo di tempo, espresso in secondi, trascorso il quale una richiesta di sincronizzazione Web scade. internet_timeout è di tipo int e il valore predefinito è 300 secondi.

  • [ @hostname = ] 'hostname'
    Sostituisce il valore di HOST_NAME() quando questa funzione viene utilizzata nella clausola WHERE di un filtro con parametri. hostname è di tipo sysname e il valore predefinito è NULL.

  • [ @job_login = ] 'job_login'
    Account di accesso per l'account di Windows utilizzato per l'esecuzione dell'agente. job_login è di tipo nvarchar(257) e non prevede alcun valore predefinito. Questo account di Windows viene sempre utilizzato per le connessioni dell'agente al Sottoscrittore e per le connessioni al server di distribuzione e al server di pubblicazione quando viene utilizzata l'autenticazione integrata di Windows.

  • [ @job_password = ] 'job_password'
    Password dell'account di Windows utilizzato per l'esecuzione dell'agente. job_password è di tipo sysname e non prevede alcun valore predefinito.

    Nota sulla sicurezzaNota sulla sicurezza

    Non archiviare informazioni di autenticazione in file script. Per una sicurezza ottimale, i nomi e le password degli account di accesso devono essere forniti in fase di esecuzione.

Valori restituiti

0 (esito positivo) o 1 (esito negativo)

Osservazioni

La stored procedure sp_addmergepullsubscription_agent viene utilizzata nella replica di tipo merge e la funzionalità è simile a quella di sp_addsubsubscriber_agent.

Per un esempio di impostazione corretta delle impostazioni di sicurezza quando si esegue sp_addmergepullsubscription_agent, vedere Creazione di una sottoscrizione pull.

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

-- Execute this batch at the Subscriber.
DECLARE @publication AS sysname;
DECLARE @publisher AS sysname;
DECLARE @publicationDB AS sysname;
DECLARE @hostname AS sysname;
SET @publication = N'AdvWorksSalesOrdersMerge';
SET @publisher = $(PubServer);
SET @publicationDB = N'AdventureWorks2012';
SET @hostname = N'adventure-works\david8';

-- At the subscription database, create a pull subscription 
-- to a merge publication.
USE [AdventureWorks2012Replica]
EXEC sp_addmergepullsubscription 
  @publisher = @publisher, 
  @publication = @publication, 
  @publisher_db = @publicationDB;

-- Add an agent job to synchronize the pull subscription. 
EXEC sp_addmergepullsubscription_agent 
  @publisher = @publisher, 
  @publisher_db = @publicationDB, 
  @publication = @publication, 
  @distributor = @publisher, 
  @job_login = $(Login), 
  @job_password = $(Password),
  @hostname = @hostname;
GO

Autorizzazioni

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

Vedere anche

Riferimento

sp_addmergepullsubscription (Transact-SQL)

sp_changemergepullsubscription (Transact-SQL)

sp_dropmergepullsubscription (Transact-SQL)

sp_helpmergepullsubscription (Transact-SQL)

sp_helpsubscription_properties (Transact-SQL)

Concetti

Creazione di una sottoscrizione pull

Sottoscrizione delle pubblicazioni