Condividi tramite


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 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 ulteriori informazioni, vedere Abilitazione di connessioni crittografate al Motore di database (Gestione configurazione SQL Server).

Icona di collegamento a un argomento Convenzioni 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 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. Il valore 0 indica 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 è necessario 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 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'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 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 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). I membri del ruolo predefinito del server sysadmin devono specificare job_login e job_password se è stato specificato job_name.

  • [ @frequency_type = ] frequency_type
    Frequenza di pianificazione dell'agente di distribuzione. 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 (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 (mensile relativa). frequency_relative_interval è di tipo int. I valori possibili sono i seguenti.

    Valore

    Descrizione

    1 (predefinito)

    Primo

    2

    Secondo

    4

    Terzo

    8

    Quarto

    16

    Ultimo

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

    Valore

    Descrizione

    1

    Una volta sola

    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'
    Specifica il nome del pacchetto DTS (Data Transformation Services). 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'
    Specifica la 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 dei dati 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'
    Percorso del database 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 consente di identificare l'origine dei 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 stabilire 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'AdventureWorks2012Replica';

--Add a push subscription to a transactional publication.
USE [AdventureWorks2012]
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.

Vedere anche

Riferimento

Stored procedure per la replica (Transact-SQL)

sp_addsubscription (Transact-SQL)

sp_changesubscription (Transact-SQL)

sp_dropsubscription (Transact-SQL)

sp_helpsubscription (Transact-SQL)

Concetti

Creazione di una sottoscrizione push

Creazione di una sottoscrizione per un Sottoscrittore non SQL Server

Sottoscrizione delle pubblicazioni