sp_addpullsubscription_agent (Transact-SQL)

Aggiunge un nuovo processo pianificato dell'agente per la sincronizzazione di una sottoscrizione pull con una pubblicazione transazionale. Questa stored procedure viene eseguita nel database di sottoscrizione del Sottoscrittore.

Icona di collegamento a un argomentoConvenzioni della sintassi Transact-SQL

Sintassi

sp_addpullsubscription_agent [ @publisher = ] 'publisher'
    [ , [ @publisher_db = ] 'publisher_db' ]
        , [ @publication = ] 'publication'
    [ , [ @subscriber = ] 'subscriber' ]
    [ , [ @subscriber_db = ] 'subscriber_db' ]
    [ , [ @subscriber_security_mode = ] subscriber_security_mode ]
    [ , [ @subscriber_login = ] 'subscriber_login' ]
    [ , [ @subscriber_password = ] 'subscriber_password' ]
    [ , [ @distributor = ] 'distributor' ]
    [ , [ @distribution_db = ] 'distribution_db' ]
    [ , [ @distributor_security_mode = ] distributor_security_mode ]
    [ , [ @distributor_login = ] 'distributor_login' ]
    [ , [ @distributor_password = ] 'distributor_password' ]
    [ , [ @optional_command_line = ] 'optional_command_line' ]
    [ , [ @frequency_type = ] frequency_type ]
    [ , [ @frequency_interval = ] frequency_interval ]
    [ , [ @frequency_relative_interval = ] frequency_relative_interval ]
    [ , [ @frequency_recurrence_factor = ] frequency_recurrence_factor ]
    [ , [ @frequency_subda y= ] 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 ]
    [ , [ @distribution_jobid = ] distribution_jobid OUTPUT ]
    [ , [ @encrypted_distributor_password = ] encrypted_distributor_password ]
    [ , [ @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' ]
    [ , [ @publication_type = ] publication_type ]
    [ , [ @dts_package_name = ] 'dts_package_name' ]
    [ , [ @dts_package_password = ] 'dts_package_password' ]
    [ , [ @dts_package_location = ] 'dts_package_location' ]
    [ , [ @reserved = ] 'reserved' ]
    [ , [ @offloadagent = ] 'remote_agent_activation' ]
    [ , [ @offloadserver = ] 'remote_agent_server_name']
    [ , [ @job_name = ] 'job_name' ]
    [ , [ @job_login = ] 'job_login' ] 
    [ , [ @job_password = ] 'job_password' ] 

Argomenti

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

  • [ @publisher_db=] **'**publisher_db'
    Nome del database di pubblicazione. publisher_db è di tipo sysname e il valore predefinito è NULL. publisher_db viene ignorato dai server di pubblicazione Oracle.

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

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

    [!NOTA]

    Questo parametro è obsoleto ed è ancora disponibile per compatibilità con gli script di versioni precedenti.

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

    [!NOTA]

    Questo parametro è obsoleto ed è ancora disponibile per compatibilità con gli script di versioni precedenti.

  • [ @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 è NULL. Il valore 0 indica l'autenticazione di SQL Server. Il valore 1 indica l'autenticazione di Windows.

    [!NOTA]

    Questo parametro è obsoleto ed è ancora disponibile per compatibilità con gli script di versioni precedenti. L'agente di distribuzione si connette sempre al Sottoscrittore locale utilizzando l'autenticazione di Windows. Se per questo parametro viene specificato un valore diverso da NULL o 1, viene restituito un messaggio di avviso.

  • [ @subscriber_login =] 'subscriber_login'
    Account di accesso da utilizzare quando ci si connette a un Sottoscrittore per la sincronizzazione. 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 viene specificato un valore per questo parametro, viene visualizzato un messaggio di avviso, ma il valore viene ignorato.

  • [ @subscriber_password=] 'subscriber_password'
    Password del Sottoscrittore. subscriber_password è obbligatorio se subscriber_security_mode è impostato su 0. subscriber_password è di tipo sysname e il valore predefinito è NULL. Le password del Sottoscrittore vengono crittografate automaticamente.

    [!NOTA]

    Questo parametro è obsoleto ed è ancora disponibile per compatibilità con gli script di versioni precedenti. Se viene specificato un valore per questo parametro, viene visualizzato un messaggio di avviso, ma il valore viene ignorato.

  • [ @distributor=] 'distributor'
    Nome del server di distribuzione. distributor è di tipo sysname e il valore predefinito è il nome specificato in publisher.

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

  • [ @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 è 1. 0 indica l'autenticazione di SQL Server. Il valore 1 indica l'autenticazione di Windows.

    Nota sulla protezioneNota 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.

    Nota sulla protezioneNota 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.

  • [ @optional_command_line=] 'optional_command_line'
    Riga di comando facoltativa fornita all'agente di distribuzione, ad esempio -DefinitionFile C:\Distdef.txt o -CommitBatchSize 10. optional_command_line è di tipo nvarchar(4000) e il valore predefinito è una stringa vuota.

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

    Valore

    Descrizione

    1

    Singola occorrenza

    2 (predefinito)

    A richiesta

    4

    Giornaliera

    8

    Settimanale

    16

    Mensile

    32

    Mensile relativa

    64

    Avvio automatico

    128

    Periodica

    [!NOTA]

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

  • [ @frequency_interval=] frequency_interval
    Valore da applicare alla frequenza impostata da frequency_type. frequency_interval è di tipo int e il valore predefinito è 1.

  • [ @frequency_relative_interval=] frequency_relative_interval
    Data dell'agente di distribuzione. 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 (predefinito)

    Primo

    2

    Secondo

    4

    Terzo

    8

    Quarto

    16

    Ultimo

  • [ @frequency_recurrence_factor=] frequency_recurrence_factor
    Fattore di ricorrenza utilizzato da frequency_type. frequency_recurrence_factor è di tipo int e il valore predefinito è 1.

  • [ @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 (predefinito)

    Una volta

    2

    Secondo

    4

    Minuto

    8

    Ora

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

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

  • [ @active_end_time_of_day=] active_end_time_of_day
    Ora del giorno dell'ultima esecuzione pianificata dell'agente di distribuzione, nel formato HHMMSS. active_end_time_of_day è di tipo int e il valore predefinito è 0.

  • [ @active_start_date=] active_start_date
    Data della prima esecuzione pianificata dell'agente di distribuzione, nel formato AAAAMMGG. active_start_date è di tipo int e il valore predefinito è 0.

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

  • [ @distribution_jobid =] distribution_jobidOUTPUT
    ID dell'agente di distribuzione per il processo. distribution_jobid è di tipo binary(16) e il valore predefinito è NULL. Si tratta di un parametro OUTPUT.

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

  • [ @enabled_for_syncmgr=] 'enabled_for_syncmgr'
    Specifica se la sottoscrizione può essere sincronizzata tramite Gestione sincronizzazione Microsoft. 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 solo per compatibilità con le versioni precedenti.

  • [ @alt_snapshot_folder= ] **'**alternate_snapshot_folder'
    Specifica la posizione della cartella alternativa per lo snapshot. alternate_snapshot_folder è di tipo nvarchar(255) e il valore predefinito è NULL.

  • [ @working_directory= ] 'working_director'
    Nome della directory di lavoro utilizzata per l'archiviazione dei file di dati e dello schema della pubblicazione. working_directory è di tipo nvarchar(255) e il valore predefinito è NULL. Il nome deve essere specificato in formato UNC.

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

  • [ @publication_type= ] publication_type
    Specifica il tipo di replica della pubblicazione. publication_type è di tipo tinyint e il valore predefinito è 0. Se è 0, la pubblicazione è di tipo transazionale. Se è 1, la pubblicazione è di tipo snapshot. Se è 2, la pubblicazione è di tipo merge.

  • [ @dts_package_name= ] 'dts_package_name'
    Nome del pacchetto DTS. dts_package_name è di tipo sysname e il valore predefinito è NULL. Per specificare, ad esempio, il nome di pacchetto DTSPub_Package, il parametro deve essere @dts\_package\_name = N'DTSPub_Package'.

  • [ @dts_package_password= ] 'dts_package_password'
    Password del pacchetto, se disponibile. dts_package_password è di tipo sysname e il valore predefinito è NULL, che indica che non è configurata alcuna password.

    [!NOTA]

    Se viene specificato dts_package_name, è necessario impostare una password.

  • [ @dts_package_location= ] 'dts_package_location'
    Posizione del pacchetto. dts_package_location è di tipo nvarchar(12) e il valore predefinito è subscriber. Per la posizione del pacchetto è possibile specificare distributor o subscriber.

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

  • [ @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 viene specificato solo quando la sottoscrizione verrà sincronizzata mediante un processo esistente anziché un nuovo processo creato (impostazione predefinita). Gli utenti che non sono membri del ruolo predefinito del server sysadmin devono impostare job_login e job_password quando specificano job_name.

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

  • [ @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 protezioneNota sulla protezione

    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.

Valori restituiti

0 (esito positivo) o 1 (esito negativo)

Osservazioni

sp_addpullsubscription_agent viene utilizzata per la replica snapshot e transazionale.

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;
SET @publication = N'AdvWorksProductTran';
SET @publisher = $(PubServer);
SET @publicationDB = N'AdventureWorks';

-- At the subscription database, create a pull subscription 
-- to a transactional publication.
USE [AdventureWorksReplica]
EXEC sp_addpullsubscription 
  @publisher = @publisher, 
  @publication = @publication, 
  @publisher_db = @publicationDB;

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

Autorizzazioni

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