sp_addmergepullsubscription_agent (Transact-SQL)

Data aggiornamento: 12 dicembre 2006

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 argomentoConvenzioni 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 protezione da utilizzare quando ci si connette 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.

    ms187722.security(it-it,SQL.90).gifNota sulla protezione:
    Se possibile, utilizzare l'autenticazione di Windows.
  • [ @publisher_login = ] 'publisher_login'
    Account di accesso da utilizzare quando ci si connette a un server di pubblicazione per la 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.

    ms187722.security(it-it,SQL.90).gifNota sulla protezione:
    Non utilizzare una password vuota. Utilizzare una password complessa. Se possibile, richiedere agli utenti di immettere le credenziali di protezione 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 protezione da utilizzare quando ci si connette 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 è obsoleto 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 è obsoleto 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 è obsoleto 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 protezione da utilizzare quando ci si connette a un server di distribuzione per la sincronizzazione. distributor_security_mode è di tipo int e il valore predefinito è 0. Se è 0, viene utilizzata l'autenticazione di SQL Server. 1 specifica l'autenticazione di Windows.

    ms187722.security(it-it,SQL.90).gifNota sulla protezione:
    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 è obbligatorio 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.

    ms187722.security(it-it,SQL.90).gifNota sulla protezione:
    Non utilizzare una password vuota. Utilizzare una password complessa. Se possibile, richiedere agli utenti di immettere le credenziali di protezione 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 e i possibili valori sono i seguenti.

    Valore Descrizione

    1

    Una volta

    2

    Su richiesta

    4 (predefinito)

    Giornaliera

    8

    Settimanale

    16

    Mensile

    32

    Mensile relativo

    64

    Avvio automatico

    128

    Periodica

    NULL

     

    [!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 Replication Merge Agent.

  • [ @frequency_interval = ] frequency_interval
    Giorno o giorni in cui viene eseguito l'agente di merge. frequency_interval è di tipo int e i possibili valori 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 (frequenza mensile relativa). frequency_relative_interval è di tipo int e i possibili valori 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 ricorrenza 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 e i possibili valori sono i seguenti.

    Valore Descrizione

    1

    Una 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 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 per compatibilità con le versioni precedenti.
  • [ @ftp_port = ] ftp_port
    Disponibile per compatibilità con le versioni precedenti.
  • [ @ftp_login = ] 'ftp_login'
    Disponibile 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'
    Solo per uso interno.
  • [ @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 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 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 deve essere specificato solo se la sottoscrizione verrà sincronizzata utilizzando un processo esistente anziché un processo nuovo (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 shapshot 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 tramite Internet con 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.

    ms187722.security(it-it,SQL.90).gifNota sulla protezione:
    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 e i possibili valori 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 tramite il 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 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.

    ms187722.security(it-it,SQL.90).gifNota sulla protezione:
    Non archiviare informazioni di autenticazione in file script. È consigliabile che i nomi e le password degli account di accesso vengano specificati in fase di esecuzione.

Osservazioni

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

Il modello di protezione dell'agente di replica è cambiato sostanzialmente da SQL Server 2000. Per un esempio di impostazione corretta delle impostazioni di protezione quando si esegue sp_addmergepullsubscription_agent, vedere Procedura: Creazione di una sottoscrizione pull (programmazione Transact-SQL della replica).

Autorizzazioni

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

Valori restituiti

0 (esito positivo) o 1 (esito negativo)

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'AdventureWorks';
SET @hostname = N'adventure-works\david8';

-- At the subscription database, create a pull subscription 
-- to a merge publication.
USE [AdventureWorksReplica]
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

Vedere anche

Riferimento

sp_addmergepullsubscription (Transact-SQL)
sp_changemergepullsubscription (Transact-SQL)
sp_dropmergepullsubscription (Transact-SQL)
sp_helpmergepullsubscription (Transact-SQL)
sp_helpsubscription_properties (Transact-SQL)

Altre risorse

Procedura: Creazione di una sottoscrizione pull (programmazione Transact-SQL della replica)
Sottoscrizione delle pubblicazioni

Guida in linea e informazioni

Assistenza su SQL Server 2005

Cronologia modifiche

Versione Cronologia

12 dicembre 2006

Nuovo contenuto:
  • Aggiunta di una nota per specificare che un valore di @frequency_type pari a 64 causa l'esecuzione in modalità continua dell'agente di merge.
Contenuto aggiornato:
  • Correzione della documentazione: il valore predefinito per @frequency_type è 4.