sp_addpushsubscription_agent (Transact-SQL)

Aggiunge un nuovo processo di agente pianificato per sincronizzare una sottoscrizione push di una pubblicazione transazionale. Questa stored procedure viene eseguita nel database di pubblicazione del server di pubblicazione.

Nota sulla sicurezzaNota sulla sicurezza

 Quando si configura un server di distribuzione remoto per un server di pubblicazione, 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 ulteriori informazioni, vedere Crittografia delle connessioni a SQL Server.

Icona di collegamento a un argomentoConvenzioni della sintassi Transact-SQL

Sintassi

sp_addpushsubscription_agent [ @publication= ] 'publication'
    [ , [ @subscriber = ] 'subscriber' ]
    [ , [ @subscriber_db = ] 'subscriber_db' ]
    [ , [ @subscriber_security_mode = ] subscriber_security_mode ]
    [ , [ @subscriber_login = ] 'subscriber_login' ]
    [ , [ @subscriber_password = ] 'subscriber_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 ]
    [ , [ @dts_package_name = ] 'dts_package_name' ]
    [ , [ @dts_package_password = ] 'dts_package_password' ]
    [ , [ @dts_package_location = ] 'dts_package_location' ]
    [ , [ @enabled_for_syncmgr = ] 'enabled_for_syncmgr' ]
    [ , [ @distribution_job_name = ] 'distribution_job_name' ]
    [ , [ @publisher = ] 'publisher' ]
    [ , [ @subscriber_provider = ] 'subscriber_provider' ] 
    [ , [ @subscriber_datasrc = ] 'subscriber_datasrc' ] 
    [ , [ @subscriber_location = ] 'subscriber_location' ]
    [ , [ @subscriber_provider_string = ] 'subscriber_provider_string' ] 
    [ , [ @subscriber_catalog = ] 'subscriber_catalog' ]

Argomenti

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

  • [ @subscriber_db=] 'subscriber_db'
    Nome del database di sottoscrizione. subscriber_db è di tipo sysname e il valore predefinito è NULL. Per un Sottoscrittore non SQL Server, specificare un valore di (destinazione predefinita) per subscriber_db.

  • [ @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. 1 specifica l'autenticazione di Windows.

    Nota sulla sicurezzaNota sulla sicurezza

     Per le sottoscrizioni ad aggiornamento in coda utilizzare l'autenticazione di SQL Server per le connessioni ai Sottoscrittori e specificare un account diverso per la connessione a ogni Sottoscrittore. Per tutte le altre sottoscrizioni utilizzare l'autenticazione di Windows.

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

  • [ @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 sulla sicurezzaNota sulla sicurezza

    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.

  • [ @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 il 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 quando si utilizza 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

    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.

  • [ @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 viene sincronizzata utilizzando un processo esistente anziché un nuovo processo creato (impostazione predefinita). Gli utenti che non sono membri del ruolo predefinito del server sysadmin devono specificare job_login e job_password se specificano il parametro job_name.

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

    Su richiesta

    4

    Giornaliera

    8

    Settimanale

    16

    Mensile

    32

    Mensile relativa

    64 (predefinito)

    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 è 0.

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

    Minuto

    8

    Ora

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

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

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

  • [ @dts_package_name = ] 'dts_package_name'
    Nome del pacchetto Data Transformation Services (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 necessaria per l'esecuzione del pacchetto. dts_package_password è di tipo sysname e il valore predefinito è NULL.

    Nota

    L'impostazione della password è obbligatoria se si specifica dts_package_name.

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

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

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

  • [ @publisher=] 'publisher'
    Nome del server di pubblicazione. publisher è di tipo sysname e il valore predefinito è NULL.

  • [ @subscriber_provider= ] 'subscriber_provider'
    ProgID univoco con cui è registrato il provider OLE DB per l'origine dati non SQL Server. subscriber_provider è di tipo sysname e il valore predefinito è NULL. subscriber_provider deve essere univoco per il provider OLE DB installato nel server di distribuzione. subscriber_provider è supportato solo per Sottoscrittori non SQL Server.

  • [ @subscriber_datasrc= ] 'subscriber_datasrc'
    Nome dell'origine dati nel formato riconosciuto dal provider OLE DB. subscriber_datasrc è di tipo nvarchar(4000) e il valore predefinito è NULL. subscriber_datasrc viene passato come proprietà DBPROP_INIT_DATASOURCE per l'inizializzazione del provider OLE DB. subscriber_datasrc è supportato solo per Sottoscrittori non SQL Server.

  • [ @subscriber_location= ] 'subscriber_location'
    Posizione del database nel formato riconosciuto dal provider OLE DB. subscriber_location è di tipo nvarchar(4000) e il valore predefinito è NULL. subscriber_location viene passato come proprietà DBPROP_INIT_LOCATION per l'inizializzazione del provider OLE DB. subscriber_location è supportato solo per Sottoscrittori non SQL Server.

  • [ @subscriber_provider_string= ] 'subscriber_provider_string'
    Stringa di connessione specifica del provider OLE DB che identifica l'origine dati. subscriber_provider_string è di tipo nvarchar(4000) e il valore predefinito NULL. subscriber_provider_string viene passato a IDataInitialize o impostato come proprietà DBPROP_INIT_PROVIDERSTRING per l'inizializzazione del provider OLE DB. subscriber_provider_string è supportato solo per Sottoscrittori non SQL Server.

  • [ @subscriber_catalog= ] 'subscriber_catalog'
    Catalogo da utilizzare per l'esecuzione di una connessione al provider OLE DB. subscriber_catalog è di tipo sysname e il valore predefinito è NULL. subscriber_catalog viene passato come proprietà DBPROP_INIT_CATALOG per l'inizializzazione del provider OLE DB. subscriber_catalog è supportato solo per Sottoscrittori non SQL Server.

Valori restituiti

0 (esito positivo) o 1 (esito negativo)

Osservazioni

La stored procedure sp_addpushsubscription_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".

DECLARE @publication AS sysname;
DECLARE @subscriber AS sysname;
DECLARE @subscriptionDB AS sysname;
SET @publication = N'AdvWorksProductTran';
SET @subscriber = $(SubServer);
SET @subscriptionDB = N'AdventureWorks2008R2Replica';

--Add a push subscription to a transactional publication.
USE [AdventureWorks2008R2]
EXEC sp_addsubscription 
  @publication = @publication, 
  @subscriber = @subscriber, 
  @destination_db = @subscriptionDB, 
  @subscription_type = N'push';

--Add an agent job to synchronize the push subscription.
EXEC sp_addpushsubscription_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 ruolo predefinito del database db_owner possono eseguire sp_addpushsubscription_agent.