Partager via


sp_addpushsubscription_agent (Transact-SQL)

Ajoute un nouveau travail de l'agent planifié utilisé pour synchroniser un abonnement envoyé avec une publication transactionnelle. Cette procédure stockée est exécutée au niveau du serveur de publication dans la base de données de publication.

Remarque relative à la sécuritéRemarque relative à la sécurité

 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 au serveur de distribution en texte brut. Vous devriez chiffrer la connexion entre le serveur de publication et son serveur de distribution distant avant d'exécuter cette procédure stockée. Pour plus d'informations, consultez Chiffrement des connexions à SQL Server.

Icône Lien de rubriqueConventions de la syntaxe de Transact-SQL

Syntaxe

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

Arguments

  • [ @publication =] 'publication'
    Nom de la publication. L'argument publication est de type sysname et n'a pas de valeur par défaut.

  • [ @subscriber =] 'subscriber'
    Nom de l'Abonné. subscriber est de type sysname, avec NULL comme valeur par défaut.

  • [ @subscriber_db =] 'subscriber_db'
    Nom de la base de données d'abonnement. subscriber_db est de type sysname, avec NULL comme valeur par défaut. Pour un Abonné non-SQL Server, spécifiez une valeur (destination par défaut) pour subscriber_db.

  • [ @subscriber_security_mode =] subscriber_security_mode
    Mode de sécurité à utiliser lors de la connexion à un abonné au cours d'une synchronisation. subscriber_security_mode est de type int, avec 1 comme valeur par défaut. La valeur 0 spécifie l'authentification SQL Server. La valeur 1 spécifie l'authentification Windows.

    Remarque relative à la sécuritéRemarque relative à la sécurité

    Pour les abonnements mis à jour en attente, utilisez l'Authentification SQL Server pour les connexions aux abonnés et spécifiez un compte différent pour la connexion à chaque abonné. Pour tous les autres abonnements, utilisez l'authentification Windows.

  • [ @subscriber_login =] 'subscriber_login'
    Nom de connexion d'abonné à utiliser lors de la connexion à un abonné au cours d'une synchronisation. subscriber_login est de type sysname, avec NULL comme valeur par défaut.

  • [ @subscriber_password =] 'subscriber_password'
    Mot de passe de l'Abonné. L'argument subscriber_password est requis si subscriber_security_mode a la valeur 0. subscriber_password est de type sysname, avec NULL comme valeur par défaut. Si un mot de passe d'abonné est utilisé, il est automatiquement chiffré.

    Remarque relative à la sécuritéRemarque relative à la sécurité

    N'utilisez pas de mot de passe vide. Utilisez un mot de passe fort. Lorsque c'est possible, demandez aux utilisateurs de fournir les informations d'identification de sécurité au moment de l'exécution. 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é.

  • [ @job_login = ] 'job_login'
    Nom de connexion du compte Windows sous lequel l'Agent s'exécute. job_login est de type nvarchar(257), avec NULL comme valeur par défaut. 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.

  • [ @job_password = ] 'job_password'
    Mot de passe du compte Windows sous lequel l'Agent s'exécute. job_password est de type sysname et n'a pas de valeur par défaut.

    Remarque relative à la sécuritéRemarque relative à la sécurité

    Si possible, invitez les utilisateurs à entrer les informations d'identification de sécurité au moment de l'exécution. 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é.

  • [ @job_name = ] 'job_name'
    Nom d'un travail d'agent existant. job_name est de type sysname, avec NULL comme valeur par défaut. Ce paramètre n'est spécifié que lorsque l'abonnement est synchronisé à l'aide d'un travail existant au lieu d'un travail tout juste créé (par défaut). Si vous n'êtes pas membre du rôle serveur fixe sysadmin, vous devez définir les arguments job_login et job_password lorsque vous spécifiez job_name.

  • [ @frequency_type = ] frequency_type
    Fréquence de planification de l'Agent de distribution. frequency_type est de type int et peut prendre l'une des valeurs suivantes.

    Valeur

    Description

    1

    Une fois

    2

    Sur demande

    4

    Tous les jours

    8

    Toutes les semaines

    16

    Tous les mois

    32

    Tous les mois, en fonction de l'intervalle de fréquence

    64 (valeur par défaut)

    Démarrage automatique

    128

    Périodique

    [!REMARQUE]

    Si vous spécifiez une valeur de 64, l'Agent de distribution s'exécute en mode continu. Ceci correspond à la définition du paramètre -Continuous de l'Agent. Pour plus d'informations, consultez Agent de distribution de réplication.

  • [ @frequency_interval = ] frequency_interval
    Valeur à appliquer à la fréquence définie par frequency_type. frequency_interval est de type int, avec 1 comme valeur par défaut.

  • [ @frequency_relative_interval = ] frequency_relative_interval
    Date de l'Agent de distribution. Ce paramètre est utilisé lorsque frequency_type a la valeur 32 (fréquence mensuelle relative). frequency_relative_interval est de type int et peut prendre l'une des valeurs suivantes.

    Valeur

    Description

    1 (valeur par défaut)

    Premier

    2

    Deuxième

    4

    Troisième

    8

    Quatrième

    16

    Dernier

  • [ @frequency_recurrence_factor = ] frequency_recurrence_factor
    Facteur de récurrence utilisé par frequency_type. frequency_recurrence_factor est de type int, avec 0 comme valeur par défaut.

  • [ @frequency_subday = ] frequency_subday
    Fréquence de replanification au cours de la période définie. frequency_subday est de type int et peut prendre l'une des valeurs suivantes.

    Valeur

    Description

    1

    Une fois

    2

    Deuxième

    4 (valeur par défaut)

    Minute

    8

    Heure

  • [ @frequency_subday_interval = ] frequency_subday_interval
    Intervalle pour frequency_subday. frequency_subday_interval est de type int, avec 5 comme valeur par défaut.

  • [ @active_start_time_of_day = ] active_start_time_of_day
    Heure de la journée à laquelle l'Agent de distribution est planifié pour la première fois, représentée au format HHMMSS. active_start_time_of_day est de type int, avec 0 comme valeur par défaut.

  • [ @active_end_time_of_day = ] active_end_time_of_day
    Heure de la journée à laquelle l'Agent de distribution cesse d'être planifié, représentée au format HHMMSS. active_end_time_of_day est de type int, avec 235959 comme valeur par défaut.

  • [ @active_start_date = ] active_start_date
    Date à laquelle l'Agent de distribution est planifié pour la première fois, représentée au format AAAAMMJJ. active_start_date est de type int, avec 0 comme valeur par défaut.

  • [ @active_end_date = ] active_end_date
    Date à laquelle l'Agent de distribution cesse d'être planifié, représentée au format AAAAMMJJ. active_end_date est de type int, avec 99991231 comme valeur par défaut.

  • [ @dts_package_name = ] 'dts_package_name'
    Spécifie le nom du package DTS (Data Transformation Services). dts_package_name est de type sysname, avec NULL comme valeur par défaut. Par exemple, pour spécifier le nom de package DTSPub_Package, le paramètre est le suivant : @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 est de type sysname, avec NULL comme valeur par défaut.

    [!REMARQUE]

    Vous devez indiquer un mot de passe si l'argument dts_package_name est spécifié.

  • [ @dts_package_location = ] 'dts_package_location'
    Spécifie l'emplacement du package. dts_package_location est de type nvarchar(12), avec DISTRIBUTOR comme valeur par défaut. L'emplacement du package peut être distributor ou subscriber.

  • [ @enabled_for_syncmgr = ] 'enabled_for_syncmgr'
    Détermine si l'abonnement peut être synchronisé par le Gestionnaire de synchronisation Microsoft. enabled_for_syncmgr est de type nvarchar(5), avec FALSE comme valeur par défaut. Si la valeur est false, l'abonnement n'est pas enregistré par le Gestionnaire de synchronisation. Si la valeur est true, l'abonnement est enregistré par le Gestionnaire de synchronisation et peut ensuite être synchronisé sans qu'il soit nécessaire de démarrer SQL Server Management Studio.

  • [ @distribution_job_name = ] 'distribution_job_name'
    Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

  • [ @publisher = ] 'publisher'
    Nom du serveur de publication. publisher est de type sysname, avec NULL comme valeur par défaut.

  • [ @subscriber_provider= ] 'subscriber_provider'
    Identificateur programmatique (PROGID) unique sous lequel le fournisseur OLE DB de la source de données non-SQL Server est enregistré. subscriber_provider est de type sysname, avec NULL comme valeur par défaut. L'argument subscriber_provider doit être unique pour le fournisseur OLE DB installé sur le serveur de distribution. subscriber_provider n'est pris en charge que pour les abonnés non-SQL Server.

  • [ @subscriber_datasrc= ] 'subscriber_datasrc'
    Nom de la source de données tel qu'il est interprété par le fournisseur OLE DB. subscriber_datasrc est de type nvarchar(4000), avec NULL comme valeur par défaut. L'argument subscriber_datasrc est transmis en tant que propriété DBPROP_INIT_DATASOURCE pour initialiser le fournisseur OLE DB. subscriber_datasrc n'est pris en charge que pour les abonnés non-SQL Server.

  • [ @subscriber_location= ] 'subscriber_location'
    Emplacement de la base de données tel qu'il est interprété par le fournisseur OLE DB. subscriber_location est de type nvarchar(4000), avec NULL comme valeur par défaut. L'argument subscriber_location est transmis en tant que propriété DBPROP_INIT_LOCATION pour initialiser le fournisseur OLE DB. subscriber_location n'est pris en charge que pour les abonnés non-SQL Server.

  • [ @subscriber_provider_string= ] 'subscriber_provider_string'
    Chaîne de connexion spécifique au fournisseur OLE DB identifiant la source de données. subscriber_provider_string est de type nvarchar(4000), avec NULL comme valeur par défaut. L'argument subscriber_provider_string est transmis à IDataInitialize ou défini en tant que propriété DBPROP_INIT_PROVIDERSTRING pour initialiser le fournisseur OLE DB. subscriber_provider_string n'est pris en charge que pour les abonnés non-SQL Server.

  • [ @subscriber_catalog= ] 'subscriber_catalog'
    Catalogue à utiliser lors de l'établissement d'une connexion au fournisseur OLE DB. subscriber_catalog est de type sysname, avec NULL comme valeur par défaut. L'argument subscriber_catalog est transmis en tant que propriété DBPROP_INIT_CATALOG pour initialiser le fournisseur OLE DB. subscriber_catalog n'est pris en charge que pour les abonnés non-SQL Server.

Valeurs des codes renvoyés

0 (succès) ou 1 (échec)

Notes

sp_addpullsubscription_agent est utilisé lors des réplications de capture instantanée et transactionnelle.

Exemple

-- 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'AdventureWorksReplica';

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

Autorisations

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