Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Comment modifier le numéro de séquence d'un compte de messagerie de base de données dans un profil dans SQL Server (T-SQL)

Si vous avez déjà ajouté un compte de messagerie de base de données à un profil, mais que vous souhaitez maintenant modifier le numéro de séquence, vous pouvez le faire avec le sysmail_update_profileaccount_sp procédure stockée.

Ce faisant, vous devez fournir le nom ou l'ID du compte et du profil. En effet, vous devez spécifier exactement quelle association profil/compte vous souhaitez mettre à jour.

Exemple

Voici un exemple pour illustrer :

EXECUTE msdb.dbo.sysmail_update_profileaccount_sp  
    @profile_name = 'DB Admin Profile',
    @account_name = 'DB Admin',
    @sequence_number = 2;

Cet exemple modifie le numéro de séquence du compte appelé "DB Admin" dans le profil appelé "DB Admin Profile".

Dans ce cas, j'ai changé le numéro de séquence en 2, ce qui signifie que le compte "DB Admin" ne sera utilisé qu'en cas d'échec du premier compte.

Utilisation des identifiants de profil/compte

Dans cet exemple, j'utilise les ID de profil et de compte au lieu de leurs noms :

EXECUTE msdb.dbo.sysmail_update_profileaccount_sp  
    @profile_id = 1,
    @account_id = 1,
    @sequence_number = 3;

Utiliser une combinaison d'identifiant et de nom

Vous pouvez également fournir l'ID de l'un et le nom de l'autre.

Par exemple :

EXECUTE msdb.dbo.sysmail_update_profileaccount_sp 
    @profile_name = 'DB Admin Profile',
    @account_id = 1,
    @sequence_number = 4;

Ou l'inverse :

EXECUTE msdb.dbo.sysmail_update_profileaccount_sp
    @profile_id = 1,
    @account_name = 'DB Admin',
    @sequence_number = 1;

Comment fonctionne le numéro de séquence ?

Vous pouvez ajouter plusieurs comptes à un profil de messagerie de base de données. Le numéro de séquence détermine l'ordre dans lequel ces comptes sont utilisés dans le profil lors de l'envoi de courrier. La messagerie de base de données commence par le compte qui a le numéro de séquence le plus bas. Si ce compte échoue, le compte avec le numéro de séquence le plus élevé suivant est utilisé, et ainsi de suite.

S'il existe plusieurs comptes avec le même numéro de séquence, Database Mail n'utilisera qu'un seul de ces comptes pour un message électronique donné.

Cependant, rien ne garantit que le même compte sera utilisé pour les messages suivants. Par exemple, si deux comptes partagent un numéro de séquence de 1, vous pouvez recevoir des e-mails d'un compte et d'autres de l'autre compte.

Je dois souligner que, selon cet article de Microsoft, lorsque vous envoyez un nouveau message électronique, Database Mail commence en fait avec le dernier compte qui a envoyé un message avec succès , ou le compte qui a le numéro de séquence le plus bas si aucun message n'a encore été envoyé.

Le fait qu'il commence par le dernier compte qui a envoyé un message avec succès n'est pas mentionné dans la documentation officielle de sysmail_add_profileaccount_sp ou sysmail_update_profileaccount_sp .

Quoi qu'il en soit, c'est quelque chose dont il faut être conscient, et cela peut vous éviter de vous arracher les cheveux si votre DB Mail semble ignorer vos numéros de séquence.

Emplacement de la procédure stockée

Notez que le sysmail_update_profileaccount_sp la procédure stockée est dans le msdb base de données, et elle appartient à dbo schéma. Par conséquent, vous devrez utiliser un nommage en trois parties si vous l'exécutez depuis l'extérieur de msdb base de données.

Comment renvoyer les informations de compte et de profil

Les articles suivants fournissent des instructions pour renvoyer les informations de compte et de profil.

  • Obtenir une liste des comptes de messagerie de base de données dans SQL Server
  • Renvoyer une liste des profils de messagerie de base de données dans SQL Server