sp_addpushsubscription_agent (Transact-SQL)sp_addpushsubscription_agent (Transact-SQL)

S’APPLIQUE À : ouiSQL Server ouiAzure SQL Database (Managed Instance uniquement) nonAzure SQL Data Warehouse nonParallel Data Warehouse APPLIES TO: yesSQL Server yesAzure SQL Database (Managed Instance only) noAzure SQL Data Warehouse noParallel Data Warehouse

Ajoute un nouveau travail de l'agent planifié utilisé pour synchroniser un abonnement envoyé avec une publication transactionnelle.Adds a new scheduled agent job used to synchronize a push subscription to a transactional publication. Cette procédure stockée est exécutée sur le serveur de publication dans la base de données de publication.This stored procedure is executed at the Publisher on the publication database.

Important

Lors de la configuration d'un serveur de publication avec un serveur de distribution distant, les valeurs fournies pour tous les paramètres, y compris job_login et job_password, sont envoyées en texte brut au serveur de distribution.When configuring a Publisher with a remote Distributor, the values supplied for all parameters, including job_login and job_password, are sent to the Distributor as plain text. Vous devez chiffrer la connexion entre le serveur de publication et son serveur de distribution distant avant d'exécuter cette procédure stockée.You should encrypt the connection between the Publisher and its remote Distributor before executing this stored procedure. Pour plus d’informations, consultez Activer des connexions chiffrées dans le moteur de base de données (Gestionnaire de configuration SQL Server).For more information, see Enable Encrypted Connections to the Database Engine (SQL Server Configuration Manager).

Icône de lien de rubrique Conventions de la syntaxe Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SyntaxeSyntax

  
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' ]  

ArgumentsArguments

[ @publication = ] 'publication'Nom de la publication.[ @publication = ] 'publication' Is the name of the publication. publication est de type sysname, sans valeur par défaut.publication is sysname, with no default.

[ @subscriber = ] 'subscriber'Nom de l’instance de l’abonné ou nom de l’écouteur GA si la base de données de l’abonné est un groupe de disponibilité.[ @subscriber = ] 'subscriber' Is the name of the Subscriber instance or the name of the AG listener if the subscriber database is a availability group. Subscriber est de type sysname, avec NULL comme valeur par défaut.subscriber is sysname, with a default of NULL.

[ @subscriber_db = ] 'subscriber_db'Nom de la base de données d’abonnement.[ @subscriber_db = ] 'subscriber_db' Is the name of the subscription database. subscriber_db est de type sysname, avec NULL comme valeur par défaut.subscriber_db is sysname, with a default of NULL. Pour un abonné non-SQL Server, spécifiez la valeur (destination par défaut) pour subscriber_db.For a non-SQL Server Subscriber, specify a value of (default destination) for subscriber_db.

[ @subscriber_security_mode = ] subscriber_security_modeMode de sécurité à utiliser lors de la connexion à un abonné au cours d’une synchronisation.[ @subscriber_security_mode = ] subscriber_security_mode Is the security mode to use when connecting to a Subscriber when synchronizing. subscriber_security_mode est de type int, avec 1 comme valeur par défaut.subscriber_security_mode is int, with a default of 1. 0 spécifie SQL ServerSQL Server l’authentification.0 specifies SQL ServerSQL Server Authentication. 1 spécifie l’authentification Windows.1 specifies Windows Authentication.

Important

Pour les abonnements mis à jour en attente, utilisez l'authentification SQL ServerSQL Server pour les connexions aux abonnés et spécifiez un compte différent pour la connexion à chaque abonné.For queued updating subscriptions, use SQL ServerSQL Server Authentication for connections to Subscribers, and specify a different account for the connection to each Subscriber. Pour tous les autres abonnements, utilisez l'authentification Windows.For all other subscriptions, use Windows Authentication.

[ @subscriber_login = ] 'subscriber_login'Connexion de l’abonné à utiliser lors de la connexion à un abonné au cours d’une synchronisation.[ @subscriber_login = ] 'subscriber_login' Is the Subscriber login to use when connecting to a Subscriber when synchronizing. subscriber_login est de type sysname, avec NULL comme valeur par défaut.subscriber_login is sysname, with a default of NULL.

[ @subscriber_password = ] 'subscriber_password'Mot de passe de l’abonné.[ @subscriber_password = ] 'subscriber_password' Is the Subscriber password. subscriber_password est obligatoire si subscriber_security_mode est défini sur 0.subscriber_password is required if subscriber_security_mode is set to 0. subscriber_password est de type sysname, avec NULL comme valeur par défaut.subscriber_password is sysname, with a default of NULL. Si un mot de passe d'abonné est utilisé, il est automatiquement chiffré.If a subscriber password is used, it is automatically encrypted.

Important

N'utilisez pas de mot de passe vide.Do not use a blank password. Utilisez un mot de passe fort.Use a strong password. Lorsque c'est possible, demande aux utilisateurs de fournir les informations d'identification au moment de l'exécution.When possible, prompt users to enter security credentials at runtime. Si vous devez enregistrer les informations d'identification dans un fichier de script, vous devez sécuriser le fichier pour empêcher un accès non autorisé.If you must store credentials in a script file, you must secure the file to prevent unauthorized access.

[ @job_login = ] 'job_login'Nom de connexion du compte sous lequel l’agent s’exécute.[ @job_login = ] 'job_login' Is the login for the account under which the agent runs. Sur Azure SQL Database Managed Instance utilisez un compte SQL Server.On Azure SQL Database Managed Instance use a SQL Server account. job_login est de type nvarchar (257) , avec NULL comme valeur par défaut.job_login is nvarchar(257), with a default value of NULL. Ce compte Windows est toujours utilisé pour les connexions de l'Agent au serveur de distribution et pour les connexions à l'abonné utilisant l'authentification intégrée de Windows.This Windows account is always used for agent connections to the Distributor and for connections to the Subscriber when using Windows Integrated authentication.

[ @job_password = ] 'job_password'Mot de passe du compte sous lequel l’agent s’exécute.[ @job_password = ] 'job_password' Is the password for the account under which the agent runs. job_password est de type sysname, sans valeur par défaut.job_password is sysname, with no default.

Important

Lorsque c'est possible, demande aux utilisateurs de fournir les informations d'identification au moment de l'exécution.When possible, prompt users to enter security credentials at runtime. Si vous devez enregistrer les informations d'identification dans un fichier de script, vous devez sécuriser le fichier pour empêcher un accès non autorisé.If you must store credentials in a script file, you must secure the file to prevent unauthorized access.

[ @job_name = ] 'job_name'Nom d’un travail d’agent existant.[ @job_name = ] 'job_name' Is the name of an existing agent job. nom_du_travail est de type sysname, avec NULL comme valeur par défaut.job_name is sysname, with a default value of NULL. Ce paramètre n'est indiqué que lorsque l'abonnement est synchronisé grâce à un travail existant plutôt qu'un nouveau travail (étant le comportement par défaut).This parameter is only specified when the subscription will be synchronized using an existing job instead of a newly created job (the default). Si vous n’êtes pas membre du rôle serveur fixe sysadmin , vous devez spécifier job_login et job_password lorsque vous spécifiez nom_du_travail.If you are not a member of the sysadmin fixed server role, you must specify job_login and job_password when you specify job_name.

[ @frequency_type = ] frequency_typeFréquence de planification de l’Agent de distribution.[ @frequency_type = ] frequency_type Is the frequency with which to schedule the Distribution Agent. frequency_type est de type intet peut prendre l’une des valeurs suivantes.frequency_type is int, and can be one of the following values.

ValueValue DescriptionDescription
11 Une foisOne time
22 À la demandeOn demand
44 Tous les joursDaily
88 SemaineWeekly
1616 MoisMonthly
3232 Mensuelle relativeMonthly relative
64 (valeur par défaut)64 (default) Démarrage automatiqueAutostart
128128 PériodiqueRecurring

Notes

Si vous spécifiez la valeur 64 , le agent de distribution s’exécute en mode continu.Specifying a value of 64 causes the Distribution Agent to run in continuous mode. Cela correspond à la définition du paramètre -Continuous pour l’agent.This corresponds to setting the -Continuous parameter for the agent. Pour plus d'informations, consultez Replication Distribution Agent.For more information, see Replication Distribution Agent.

[ @frequency_interval = ] frequency_intervalValeur à appliquer à la fréquence définie par frequency_type.[ @frequency_interval = ] frequency_interval Is the value to apply to the frequency set by frequency_type. frequency_interval est de type int, avec 1 comme valeur par défaut.frequency_interval is int, with a default of 1.

[ @frequency_relative_interval = ] frequency_relative_intervalDate de la Agent de distribution.[ @frequency_relative_interval = ] frequency_relative_interval Is the date of the Distribution Agent. Ce paramètre est utilisé lorsque frequency_type a la valeur 32 (mensuelle relative).This parameter is used when frequency_type is set to 32 (monthly relative). frequency_relative_interval est de type intet peut prendre l’une des valeurs suivantes.frequency_relative_interval is int, and can be one of the following values.

ValueValue DescriptionDescription
1 (par défaut)1 (default) PremièreFirst
22 SecondeSecond
44 TroisièmeThird
88 QuatrièmeFourth
1616 DernièreLast

[ @frequency_recurrence_factor = ] frequency_recurrence_factorFacteur de récurrence utilisé par frequency_type.[ @frequency_recurrence_factor = ] frequency_recurrence_factor Is the recurrence factor used by frequency_type. frequency_recurrence_factor est de type int, avec 0 comme valeur par défaut.frequency_recurrence_factor is int, with a default of 0.

[ @frequency_subday = ] frequency_subdayFréquence de replanification au cours de la période définie.[ @frequency_subday = ] frequency_subday Is how often to reschedule during the defined period. frequency_subday est de type intet peut prendre l’une des valeurs suivantes.frequency_subday is int, and can be one of the following values.

ValueValue DescriptionDescription
11 Une foisOnce
22 SecondeSecond
4 (par défaut)4 (default) MinuteMinute
88 HeureHour

[ @frequency_subday_interval = ] frequency_subday_intervalIntervalle de frequency_subday.[ @frequency_subday_interval = ] frequency_subday_interval Is the interval for frequency_subday. frequency_subday_interval est de type int, avec 5 comme valeur par défaut.frequency_subday_interval is int, with a default of 5.

[ @active_start_time_of_day = ] active_start_time_of_dayHeure de la journée à laquelle le Agent de distribution est planifié pour la première fois, au format HHMMSS.[ @active_start_time_of_day = ] active_start_time_of_day Is the time of day when the Distribution Agent is first scheduled, formatted as HHMMSS. active_start_time_of_day est de type int, avec 0 comme valeur par défaut.active_start_time_of_day is int, with a default of 0.

[ @active_end_time_of_day = ] active_end_time_of_dayHeure de la journée à laquelle le Agent de distribution cesse d’être planifié, au format HHMMSS.[ @active_end_time_of_day = ] active_end_time_of_day Is the time of day when the Distribution Agent stops being scheduled, formatted as HHMMSS. active_end_time_of_day est de type int, avec 235959 comme valeur par défaut.active_end_time_of_day is int, with a default of 235959.

[ @active_start_date = ] active_start_dateDate à laquelle le Agent de distribution est planifié pour la première fois, au format AAAAMMJJ.[ @active_start_date = ] active_start_date Is the date when the Distribution Agent is first scheduled, formatted as YYYYMMDD. active_start_date est de type int, avec 0 comme valeur par défaut.active_start_date is int, with a default of 0.

[ @active_end_date = ] active_end_dateDate à laquelle le Agent de distribution cesse d’être planifié, au format AAAAMMJJ.[ @active_end_date = ] active_end_date Is the date when the Distribution Agent stops being scheduled, formatted as YYYYMMDD. active_end_date est de type int, avec 99991231 comme valeur par défaut.active_end_date is int, with a default of 99991231.

[ @dts_package_name = ] 'dts_package_name'Spécifie le nom du package DTS (Data Transformation Services).[ @dts_package_name = ] 'dts_package_name' Specifies the name of the Data Transformation Services (DTS) package. dts_package_name est de type sysname , avec NULL comme valeur par défaut.dts_package_name is a sysname with a default of NULL. Par exemple, pour spécifier le nom de package DTSPub_Package, le paramètre est le suivant : @dts_package_name = N'DTSPub_Package'.For example, to specify a package name of DTSPub_Package, the parameter would be @dts_package_name = N'DTSPub_Package'.

[ @dts_package_password = ] 'dts_package_password'Spécifie le mot de passe requis pour exécuter le package.[ @dts_package_password = ] 'dts_package_password' Specifies the password required to run the package. dts_package_password est de type sysname , avec NULL comme valeur par défaut.dts_package_password is sysname with a default of NULL.

Notes

Vous devez spécifier un mot de passe si dts_package_name est spécifié.You must specify a password if dts_package_name is specified.

[ @dts_package_location = ] 'dts_package_location'Spécifie l’emplacement du package.[ @dts_package_location = ] 'dts_package_location' Specifies the package location. dts_package_location est de type nvarchar (12) , avec Distributor comme valeur par défaut.dts_package_location is a nvarchar(12), with a default of DISTRIBUTOR. L’emplacement du package peut être Distributor ou Subscriber.The location of the package can be distributor or subscriber.

[ @enabled_for_syncmgr = ] 'enabled_for_syncmgr'Indique si l’abonnement peut être synchronisé via MicrosoftMicrosoft le gestionnaire de synchronisation.[ @enabled_for_syncmgr = ] 'enabled_for_syncmgr' Is whether the subscription can be synchronized through MicrosoftMicrosoft Synchronization Manager. enabled_for_syncmgr est de type nvarchar (5) , avec false comme valeur par défaut.enabled_for_syncmgr is nvarchar(5), with a default of FALSE. Si la valeurest false, l’abonnement n’est pas inscrit auprès du gestionnaire de synchronisation.If false, the subscription is not registered with Synchronization Manager. Si la valeur est true, l’abonnement est inscrit auprès du gestionnaire de synchronisation et peut SQL Server Management StudioSQL Server Management Studioêtre synchronisé sans démarrage.If true, the subscription is registered with Synchronization Manager and can be synchronized without starting SQL Server Management StudioSQL Server Management Studio.

[ @distribution_job_name = ] 'distribution_job_name' Identifié à titre d'information uniquement.Identified for informational purposes only. Non pris en charge.Not supported. La compatibilité future n'est pas garantie.Future compatibility is not guaranteed.[ @distribution_job_name = ] 'distribution_job_name' Identifié à titre d'information uniquement.Identified for informational purposes only. Non pris en charge.Not supported. La compatibilité future n'est pas garantie.Future compatibility is not guaranteed.

[ @publisher = ] 'publisher'Nom du serveur de publication.[ @publisher = ] 'publisher' Is the name of the Publisher. Publisher est de type sysname, avec NULL comme valeur par défaut.publisher is sysname, with a default value of NULL.

[ @subscriber_provider = ] 'subscriber_provider'Identificateur programmatique unique (ProgID) avec lequel le fournisseur OLE DB de la source de données non- SQL ServerSQL Server est inscrit.[ @subscriber_provider = ] 'subscriber_provider' Is the unique programmatic identifier (PROGID) with which the OLE DB provider for the non- SQL ServerSQL Server data source is registered. subscriber_provider est de type sysname, avec NULL comme valeur par défaut.subscriber_provider is sysname, with default value of NULL. subscriber_provider doit être unique pour le fournisseur OLE DB installé sur le serveur de distribution.subscriber_provider must be unique for the OLE DB provider installed on the Distributor. subscriber_provider est uniquement pris en charge pour SQL ServerSQL Server les abonnés non-.subscriber_provider is only supported for non- SQL ServerSQL Server Subscribers.

[ @subscriber_datasrc = ] 'subscriber_datasrc'Nom de la source de données, tel qu’il est interprété par le fournisseur OLE DB.[ @subscriber_datasrc = ] 'subscriber_datasrc' Is the name of the data source as understood by the OLE DB provider. subscriber_datasrc est de type nvarchar (4000) , avec NULL comme valeur par défaut.subscriber_datasrc is nvarchar(4000), with a default value of NULL. subscriber_datasrc est passé en tant que propriété DBPROP_INIT_DATASOURCE pour initialiser le fournisseur OLE DB.subscriber_datasrc is passed as the DBPROP_INIT_DATASOURCE property to initialize the OLE DB provider. subscriber_datasrc est uniquement pris en charge pour SQL ServerSQL Server les abonnés non-.subscriber_datasrc is only supported for non- SQL ServerSQL Server Subscribers.

[ @subscriber_location = ] 'subscriber_location'Est l’emplacement de la base de données tel qu’il est interprété par le fournisseur OLE DB.[ @subscriber_location = ] 'subscriber_location' Is the location of the database as understood by the OLE DB provider. subscriber_location est de type nvarchar (4000) , avec NULL comme valeur par défaut.subscriber_location is nvarchar(4000), with a default value of NULL. subscriber_location est passé en tant que propriété DBPROP_INIT_LOCATION pour initialiser le fournisseur OLE DB.subscriber_location is passed as the DBPROP_INIT_LOCATION property to initialize the OLE DB provider. subscriber_location est uniquement pris en charge pour SQL ServerSQL Server les abonnés non-.subscriber_location is only supported for non- SQL ServerSQL Server Subscribers.

[ @subscriber_provider_string = ] 'subscriber_provider_string'Chaîne de connexion spécifique au fournisseur OLE DB qui identifie la source de données.[ @subscriber_provider_string = ] 'subscriber_provider_string' Is the OLE DB provider-specific connection string that identifies the data source. subscriber_provider_string est de type nvarchar (4000) , avec NULL comme valeur par défaut.subscriber_provider_string is nvarchar(4000), with a default value of NULL. subscriber_provider_string est passé à IDataInitialize ou défini en tant que propriété DBPROP_INIT_PROVIDERSTRING pour initialiser le fournisseur OLE DB.subscriber_provider_string is passed to IDataInitialize or set as the DBPROP_INIT_PROVIDERSTRING property to initialize the OLE DB provider. subscriber_provider_string est uniquement pris en charge pour SQL ServerSQL Server les abonnés non-.subscriber_provider_string is only supported for non- SQL ServerSQL Server Subscribers.

[ @subscriber_catalog = ] 'subscriber_catalog'Catalogue à utiliser lors de l’établissement d’une connexion au fournisseur OLE DB.[ @subscriber_catalog = ] 'subscriber_catalog' Is the catalog to be used when making a connection to the OLE DB provider. subscriber_catalog est de type sysname, avec NULL comme valeur par défaut.subscriber_catalog is sysname, with default value of NULL. subscriber_catalog est passé en tant que propriété DBPROP_INIT_CATALOG pour initialiser le fournisseur OLE DB.subscriber_catalog is passed as the DBPROP_INIT_CATALOG property to initialize the OLE DB provider. subscriber_catalog est uniquement pris en charge pour SQL ServerSQL Server les abonnés non-.subscriber_catalog is only supported for non- SQL ServerSQL Server Subscribers.

Valeurs des codes de retourReturn Code Values

0 (succès) ou 1 (échec)0 (success) or 1 (failure)

NotesRemarks

sp_addpushsubscription_agent est utilisé dans la réplication d’instantané et la réplication transactionnelle.sp_addpushsubscription_agent is used in snapshot replication and transactional replication.

ExempleExample

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

AutorisationsPermissions

Seuls les membres du rôle serveur fixe sysadmin ou du rôle de base de données fixe db_owner peuvent exécuter sp_addpushsubscription_agent.Only members of the sysadmin fixed server role or db_owner fixed database role can execute sp_addpushsubscription_agent.

Voir aussiSee Also

Create a Push Subscription Create a Push Subscription
Créer un abonnement pour un abonné non-SQL Server Create a Subscription for a Non-SQL Server Subscriber
S’abonner aux Publications Subscribe to Publications
Procédures stockées de réplication (Transact-SQL) Replication Stored Procedures (Transact-SQL)
sp_addsubscription (Transact-SQL) sp_addsubscription (Transact-SQL)
sp_changesubscription (Transact-SQL) sp_changesubscription (Transact-SQL)
sp_dropsubscription (Transact-SQL) sp_dropsubscription (Transact-SQL)
sp_helpsubscription (Transact-SQL)sp_helpsubscription (Transact-SQL)