sp_attachsubscription (Transact-SQL)

S’applique à :SQL ServerAzure SQL Database

Attache une base de données d'abonnement existante à un Abonné. Cette procédure stockée est exécutée sur le nouvel Abonné sur la master base de données.

Important

Cette fonctionnalité est déconseillée et sera retirée dans une version prochaine. Cette fonctionnalité ne doit pas être utilisée dans le nouveau travail de développement. Dans le cas des publications de fusion partitionnées par le biais de filtres paramétrés, nous vous recommandons d'utiliser plutôt les nouvelles fonctionnalités d'instantanés partitionnés qui simplifient l'initialisation de larges volumes d'abonnements. Pour plus d'informations, voir Créer un instantané d’une publication de fusion avec des filtres paramétrés. Pour les publications qui ne sont pas partitionnés, vous pouvez initialiser un abonnement avec une sauvegarde. Pour plus d’informations, consultez Initialiser un abonnement transactionnel sans instantané.

Conventions de la syntaxe Transact-SQL

Syntaxe

sp_attachsubscription
    [ @dbname = ] N'dbname'
    , [ @filename = ] N'filename'
    [ , [ @subscriber_security_mode = ] subscriber_security_mode ]
    [ , [ @subscriber_login = ] N'subscriber_login' ]
    [ , [ @subscriber_password = ] N'subscriber_password' ]
    [ , [ @distributor_security_mode = ] distributor_security_mode ]
    [ , [ @distributor_login = ] N'distributor_login' ]
    [ , [ @distributor_password = ] N'distributor_password' ]
    [ , [ @publisher_security_mode = ] publisher_security_mode ]
    [ , [ @publisher_login = ] N'publisher_login' ]
    [ , [ @publisher_password = ] N'publisher_password' ]
    [ , [ @job_login = ] N'job_login' ]
    [ , [ @job_password = ] N'job_password' ]
    [ , [ @db_master_key_password = ] N'db_master_key_password' ]
[ ; ]

Arguments

[ @dbname = ] N’dbname'

Spécifie le nom de la base de données d’abonnement de destination. @dbname est sysname, sans valeur par défaut.

[ @filename = ] N’filename'

Nom et emplacement physique du fichier de données principal (.mdf). @filename est nvarchar(260), sans valeur par défaut.

[ @subscriber_security_mode = ] subscriber_security_mode

Mode de sécurité de l’Abonné à utiliser lors de la connexion à un Abonné lors de la synchronisation. @subscriber_security_mode est int, avec la valeur par défaut NULL.

Remarque

L'authentification Windows doit être la méthode à employer. Si @subscriber_security_mode n’est pas 1 (Authentification Windows), vous recevez une erreur.

[ @subscriber_login = ] N’subscriber_login'

Nom de connexion de l’Abonné à utiliser lors de la connexion à un Abonné lors de la synchronisation. @subscriber_login est sysname, avec la valeur par défaut NULL.

Remarque

Ce paramètre est déconseillé et est maintenu pour la compatibilité descendante des scripts. Si @subscriber_security_mode n’est pas 1 et que @subscriber_login est spécifié, vous recevez une erreur.

[ @subscriber_password = ] N’subscriber_password'

Mot de passe de l’Abonné. @subscriber_password est sysname, avec la valeur par défaut NULL.

Remarque

Ce paramètre est déconseillé et est maintenu pour la compatibilité descendante des scripts. Si @subscriber_security_mode n’est pas 1 et que @subscriber_password est spécifié, vous recevez une erreur.

[ @distributor_security_mode = ] distributor_security_mode

Mode de sécurité à utiliser lors de la connexion à un serveur de distribution lors de la synchronisation. @distributor_security_mode est int, avec la valeur par défaut 1.

  • 0 spécifie l’authentification SQL Server
  • 1spécifie Authentification Windows

Lorsque c'est possible, utilisez l'authentification Windows.

[ @distributor_login = ] N’distributor_login'

Connexion du serveur de distribution à utiliser lors de la connexion à un serveur de distribution lors de la synchronisation. @distributor_login est sysname, avec la valeur par défaut NULL. @distributor_login est obligatoire si @distributor_security_mode a la valeur 0.

[ @distributor_password = ] N’distributor_password'

Mot de passe du serveur de distribution. @distributor_password est sysname, avec la valeur par défaut NULL. @distributor_password est nécessaire si @distributor_security_mode a la valeur 0. La valeur de @distributor_password doit être inférieure à 120 caractères Unicode.

Important

N'utilisez pas de mot de passe vide. Utilisez un mot de passe fort. Lorsque c'est possible, demande aux utilisateurs de fournir les informations d'identification 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é.

[ @publisher_security_mode = ] publisher_security_mode

Mode de sécurité à utiliser lors de la connexion à un serveur de publication lors de la synchronisation. @publisher_security_mode est int, avec une valeur par défaut de 1.

  • Si 0, spécifie l’authentification SQL Server.
  • Si 1, spécifie l’authentification Windows. Lorsque c'est possible, utilisez l'authentification Windows.

[ @publisher_login = ] N’publisher_login'

Connexion à utiliser lors de la connexion à un serveur de publication lors de la synchronisation. @publisher_login est sysname, avec la valeur par défaut NULL.

[ @publisher_password = ] N’publisher_password'

Mot de passe utilisé lors de la connexion au serveur de publication. @publisher_password est sysname, avec la valeur par défaut NULL. La valeur de @publisher_password doit être inférieure à 120 caractères Unicode.

Important

N'utilisez pas de mot de passe vide. Utilisez un mot de passe fort. Lorsque c'est possible, demande aux utilisateurs de fournir les informations d'identification 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 = ] N’job_login'

Connexion pour le compte Windows sous lequel l’agent s’exécute. @job_login est nvarchar(257), sans valeur par défaut. Ce compte Windows est toujours utilisé pour les connexions des agents au serveur de distribution.

[ @job_password = ] N’job_password'

Mot de passe du compte Windows sous lequel l’agent s’exécute. @job_password est sysname, avec la valeur par défaut NULL. La valeur de job_password doit être inférieure à 120 caractères Unicode.

Important

N'utilisez pas de mot de passe vide. Utilisez un mot de passe fort. Lorsque c'est possible, demande aux utilisateurs de fournir les informations d'identification 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é.

[ @db_master_key_password = ] N’db_master_key_password'

Mot de passe d’une clé principale de base de données définie par l’utilisateur (DMK). @db_master_key_password est nvarchar(524), avec la valeur par défaut NULL. Si @db_master_key_password n’est pas spécifié, un DMK existant est supprimé et recréé.

Important

N'utilisez pas de mot de passe vide. Utilisez un mot de passe fort. Lorsque c'est possible, demande aux utilisateurs de fournir les informations d'identification 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é.

Valeurs des codes de retour

0 (réussite) ou 1 (échec).

Notes

sp_attachsubscriptionest utilisé dans instantané réplication, la réplication transactionnelle et la réplication de fusion.

Un abonnement ne peut pas être attaché à la publication si la période de rétention de la publication a expiré. Si un abonnement avec une période de rétention écoulée est spécifié, une erreur se produit lorsque l’abonnement est attaché ou synchronisé pour la première fois. Les publications avec une période de rétention de publication de 0 (jamais expirer) sont ignorées.

Autorisations

Seuls les membres du rôle serveur fixe sysadmin peuvent s’exécuter.sp_attachsubscription