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

Obtenir une liste des comptes de messagerie de base de données dans SQL Server (T-SQL)

Dans SQL Server, vous pouvez utiliser le sysmail_help_account_sp procédure stockée sur msdb base de données pour récupérer une liste de tous les comptes de messagerie de base de données.

Vous pouvez également renvoyer des informations sur le compte en fonction de son nom ou de son identifiant.

Exemple

Voici un exemple pour illustrer.

EXEC msdb.dbo.sysmail_help_account_sp;

Résultat (en utilisant la sortie verticale) :

account_id              | 1
name                    | DB Admin
description             | Mail account for admin emails.
email_address           | [email protected]
display_name            | DB Automated Mailer
replyto_address         | [email protected]
servertype              | SMTP
servername              | smtp.example.com
port                    | 25
username                | NULL
use_default_credentials | 0
enable_ssl              | 0

J'ai répertorié les résultats en utilisant la sortie verticale afin que vous n'ayez pas à faire défiler latéralement pour voir toutes les colonnes.

Dans mon cas, il n'y a qu'un seul compte Database Mail.

Notez que le sysmail_help_account_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 la dénomination en trois parties (comme dans mon exemple) si msdb n'est pas la base de données actuelle.

Renvoyer un seul compte

Même si je n'ai qu'un seul compte de messagerie de base de données sur mon système, voici un exemple de la façon de renvoyer un seul compte.

Comme mentionné, vous pouvez utiliser le nom du compte ou son ID. Voici un exemple de retour par ID de compte :

EXEC msdb.dbo.sysmail_help_account_sp
    @account_id = 1;

Vous devez fournir l'ID de compte sous la forme d'un int .

Et voici un exemple de renvoi par nom :

EXEC msdb.dbo.sysmail_help_account_sp
    @account_name = 'DB Admin';

Le nom du compte est sysname .

Compte non valide ?

Fournir un ID de compte qui n'existe pas renvoie l'erreur suivante :

Msg 14606, Level 16, State 1, Procedure msdb.dbo.sysmail_verify_account_sp, Line 33
account id is not valid

Fournir un nom de compte qui n'existe pas renvoie l'erreur suivante :

Msg 14607, Level 16, State 1, Procedure msdb.dbo.sysmail_verify_account_sp, Line 42
account name is not valid