sp_addmergesubscription (Transact-SQL)

Mis à jour : 15 septembre 2007

Crée un abonnement de fusion par envoi ( push) ou extraction (pull) de données. Cette procédure stockée est exécutée sur le serveur de publication dans la base de données de publication.

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

Syntaxe

sp_addmergesubscription [ @publication= ] 'publication'
    [ , [ @subscriber = ] 'subscriber' ]
    [ , [ @subscriber_db= ] 'subscriber_db' ]
    [ , [ @subscription_type= ] 'subscription_type' ]
    [ , [ @subscriber_type= ] 'subscriber_type' ]
    [ , [ @subscription_priority= ] subscription_priority ]
    [ , [ @sync_type= ] 'sync_type' ]
    [ , [ @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 ]
    [ , [ @optional_command_line= ] 'optional_command_line' ]
    [ , [ @description= ] 'description' ]
    [ , [ @enabled_for_syncmgr= ] 'enabled_for_syncmgr' ]
    [ , [ @offloadagent= ] remote_agent_activation]
    [ , [ @offloadserver= ] 'remote_agent_server_name' ]
    [ , [ @use_interactive_resolver= ] 'use_interactive_resolver' ]
    [ , [ @merge_job_name= ] 'merge_job_name' ]
    [ , [ @hostname = ] 'hostname'

Arguments

  • [ @publication=] 'publication'
    Nom de la publication. L'argument publication est de type sysname et n'a pas de valeur par défaut. La publication doit déjà exister.
  • [ @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.
  • [ @subscription_type=] 'subscription_type'
    Type d'abonnement. L'argument subscription_type est de type nvarchar(15), avec la valeur PUSH par défaut. Si l'argument prend la valeur push, un abonnement par envoi de données (push) est ajouté, et l'Agent de fusion est ajouté au serveur de distribution. Si l'argument prend la valeur pull, un abonnement par extraction de données (pull) est ajouté sans que soit ajouté un Agent de fusion au serveur de distribution.

    ms187717.note(fr-fr,SQL.90).gifRemarque :
    Les abonnements anonymes ne doivent pas utiliser cette procédure stockée.
  • [ @subscriber_type=] 'subscriber_type'
    Type d'Abonné. subscriber_typeest de type nvarchar(15) et peut prendre l'une des valeurs suivantes.

    Valeur Description

    local (valeur par défaut)

    Abonné connu uniquement sur le serveur de publication.

    global

    Abonné connu sur tous les serveurs.

    Dans SQL Server 2005, les abonnements locaux sont appelés « abonnements client », tandis que les abonnements globaux sont appelés « abonnements serveur ». Pour plus d'informations, consultez la section « Types d'abonnement » dans Comment la réplication de fusion détecte et résout les conflits.

  • [ @subscription_priority=] subscription_priority
    Nombre qui indique la priorité affectée à l'abonnement. L'argument subscription_priority est de type real, avec la valeur NULL par défaut. Pour les abonnements de type local et anonyme, la valeur affectée à la priorité est 0.0. Pour les abonnements de type global, la valeur affectée à la priorité doit être inférieure à 100.0.
  • [ @sync_type=] 'sync_type'
    Type de synchronisation d'abonnement. sync_typeest de type nvarchar(15), avec la valeur par défaut automatic. Peut être automatic ou none. Si la valeur est automatic, le schéma et les données initiales destinées aux tables publiées sont transférés en premier lieu vers l'Abonné. Si la valeur est none, l'Abonné est supposé déjà disposer du schéma et des données initiales destinées aux tables publiées. Les données et les tables système sont toujours transférées.

    ms187717.note(fr-fr,SQL.90).gifRemarque :
    Il n'est pas recommandé de spécifier la valeur none. Pour plus d'informations, consultez Initialisation d'une réplication de fusion sans capture instantanée.
  • [ @frequency_type=] frequency_type
    Valeur indiquant le moment où l'Agent de fusion est exécuté. L'argument frequency_type est de type int et peut prendre l'une des valeurs suivantes.

    Valeur Description

    1

    Une fois

    4

    Quotidiennement

    8

    Hebdomadairement

    10

    Mensuellement

    20

    Mensuellement, en fonction de l'intervalle de fréquence

    40

    Au démarrage de l'Agent SQL Server

    NULL (valeur par défaut)

     

  • [ @frequency_interval=] frequency_interval
    Jours où l'Agent de fusion est exécuté. L'argument frequency_interval est de type int et peut prendre l'une des valeurs suivantes.

    Valeur Description

    1

    Dimanche

    2

    Lundi

    3

    Mardi

    4

    Mercredi

    5

    Jeudi

    6

    Vendredi

    7

    Samedi

    8

    Jour

    9

    Jours de la semaine

    10

    Jours de week-end

    NULL (valeur par défaut)

     

  • [ @frequency_relative_interval=] frequency_relative_interval
    Occurrence de fusion planifiée de l'intervalle de fréquence pour chaque mois. L'argument frequency_relative_interval est de type int et peut prendre l'une des valeurs suivantes.

    Valeur Description

    1

    Premier

    2

    Deuxième

    4

    Troisième

    8

    Quatrième

    16

    Dernier

    NULL (valeur par défaut)

     

  • [ @frequency_recurrence_factor=] frequency_recurrence_factor
    Facteur de récurrence utilisé par frequency_type. L'argument frequency_recurrence_factor est de type int. Sa valeur par défaut est NULL.
  • [ @frequency_subday=] frequency_subday
    Unité pour frequency_subday_interval. L'argument frequency_subday est de type int et peut correspondre à une de ces valeurs :

    Valeur Description

    1

    Une fois

    2

    Seconde

    4

    Minute

    8

    Heure

    NULL (valeur par défaut)

     

  • [ @frequency_subday_interval=] frequency_subday_interval
    Fréquence à laquelle frequency_subday doit se produire entre chaque fusion. L'argument frequency_subday_interval est de type int, avec la valeur NULL par défaut.
  • [ @active_start_time_of_day=] active_start_time_of_day
    Heure du jour de la première planification de l'Agent de fusion, au format HHMMSS. active_start_time_of_day est de type int, avec la valeur par défaut NULL.
  • [ @active_end_time_of_day=] active_end_time_of_day
    Heure à laquelle l'Agent de fusion cesse d'être planifié, au format HHMMSS. active_end_time_of_day est de type int, avec la valeur par défaut NULL.
  • [ @active_start_date = ] active_start_date
    Date de première planification de l'Agent de fusion, au format AAAAMMJJ. L'argument active_start_date est de type int. Sa valeur par défaut est NULL.
  • [ @active_end_date = ] active_end_date
    Date à laquelle l'Agent de fusion cesse d'être planifié, au format AAAAMMJJ. L'argument active_end_date est de type int, avec NULL comme valeur par défaut.
  • [ @optional_command_line=] 'optional_command_line'
    Invite de commandes à exécuter le cas échéant. L'argument optional_command_lineest de type nvarchar(4000), avec la valeur NULL par défaut. Cet argument est utilisé pour ajouter une commande qui permet de capturer le résultat et de le sauvegarder dans un fichier ou de spécifier un fichier de configuration ou un attribut.
  • [ @description = ] 'description'
    Brève description de l'abonnement de fusion. descriptionest de type nvarchar(255), avec la valeur par défaut NULL. Cette valeur est affichée par le moniteur de réplication dans la colonne Nom convivial, qui permet de trier les abonnements d'une publication surveillée.
  • [ @enabled_for_syncmgr=] 'enabled_for_syncmgr'
    Indique si l'abonnement peut être synchronisé via le Gestionnaire de synchronisation Microsoft Windows. L'argument 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 il peut ensuite être synchronisé, sans qu'il soit nécessaire de démarrer Microsoft SQL Server Management Studio.
  • [ @offloadagent= ] remote_agent_activation
    Indique que l'Agent peut être activé à distance. L'argument remote_agent_activation est de type bit avec 0 comme valeur par défaut.

    ms187717.note(fr-fr,SQL.90).gifRemarque :
    Ce paramètre a été désapprouvé et n'est conservé que pour la compatibilité descendante des scripts.
  • [ @offloadserver= ] 'remote_agent_server_name'
    Indique le nom réseau du serveur à utiliser pour l'activation de l'Agent distant. L'argument remote_agent_server_nameest de type sysname, avec NULL comme valeur par défaut.
  • [ @use_interactive_resolver= ] 'use_interactive_resolver'
    Permet de résoudre les conflits de manière interactive pour tous les articles autorisant la résolution interactive. L'argument use_interactive_resolver est de type nvarchar(5), avec FALSE comme valeur par défaut.
  • [ @merge_job_name= ] 'merge_job_name'
    Nom du travail d'Agent de fusion ajouté pour cet abonnement. merge_job_name est de type sysname, avec NULL comme valeur par défaut. Ce paramètre permet de fournir un nom de travail d'Agent de fusion en vue de l'administration ultérieure de ce travail.
  • [ @hostname= ] 'hostname'
    Remplace la valeur retournée par HOST_NAME lorsque cette fonction est utilisée dans la clause WHERE d'un filtre paramétrable. Hostname est de type sysname, avec NULL comme valeur par défaut.

    ms187717.note(fr-fr,SQL.90).gifImportant :
    Pour des raisons de performance, il est recommandé de ne pas appliquer de fonctions aux noms de colonne dans les clauses des filtrages de lignes paramétrables, telles que LEFT([MyColumn]) = SUSER_SNAME(). Si vous utilisez HOST_NAME dans une clause de filtrage et que vous remplacez la valeur HOST_NAME, vous pouvez être amené à convertir les types de données à l'aide de CONVERT. Pour plus d'informations sur la conduite à adopter dans cette situation, consultez la section « Substitution de la valeur de HOST_NAME » de la rubrique Filtres de lignes paramétrés.

Valeurs des codes de retour

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

Notes

sp_addmergesubscription est utilisée lors d'une réplication de fusion.

Lorsque sp_addmergesubscription est exécutée par un membre du rôle serveur fixe sysadmin en vue de créer un abonnement par envoi de données (push), le travail d'Agent de fusion est implicitement créé et exécuté sous le compte du service SQL Server Agent. Il est recommandé d'exécuter sp_addmergepushsubscription_agent et d'indiquer les informations d'identification d'un autre compte Windows spécifique à l'Agent pour @job_login et @job_password. Pour plus d'informations, consultez Modèle de sécurité de l'Agent de réplication.

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

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;
DECLARE @hostname AS sysname;
SET @publication = N'AdvWorksSalesOrdersMerge';
SET @subscriber = $(SubServer);
SET @subscriptionDB = N'AdventureWorksReplica'; 
SET @hostname = N'adventure-works\david8'

-- Add a push subscription to a merge publication.
USE [AdventureWorks]
EXEC sp_addmergesubscription 
  @publication = @publication, 
  @subscriber = @subscriber, 
  @subscriber_db = @subscriptionDB, 
  @subscription_type = N'push',
  @hostname = @hostname;

--Add an agent job to synchronize the push subscription.
EXEC sp_addmergepushsubscription_agent 
  @publication = @publication, 
  @subscriber = @subscriber, 
  @subscriber_db = @subscriptionDB, 
  @job_login = $(Login), 
  @job_password = $(Password);
GO

Voir aussi

Référence

sp_changemergesubscription (Transact-SQL)
sp_dropmergesubscription (Transact-SQL)
sp_helpmergesubscription (Transact-SQL)

Autres ressources

Procédure : créer un abonnement par envoi de données (programmation Transact-SQL de réplication)
Procédure : créer un abonnement par extraction de données (programmation Transact-SQL de réplication)
Résolution interactive des conflits
Abonnement à des publications

Aide et Informations

Assistance sur SQL Server 2005

Historique des modifications

Version Historique

15 septembre 2007

Nouveau contenu :
  • Ajout d'une remarque qui déconseille de spécifier la valeur none pour le paramètre @sync_type.