Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Abrufen einer Liste der Datenbank-E-Mail-Konten in SQL Server (T-SQL)

In SQL Server können Sie den sysmail_help_account_sp verwenden gespeicherte Prozedur in der msdb Datenbank, um eine Liste aller Datenbank-E-Mail-Konten abzurufen.

Sie können Kontoinformationen auch basierend auf dem Kontonamen oder der ID zurückgeben.

Beispiel

Hier ist ein Beispiel zur Veranschaulichung.

EXEC msdb.dbo.sysmail_help_account_sp;

Ergebnis (bei vertikaler Ausgabe):

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

Ich habe die Ergebnisse mit vertikaler Ausgabe aufgelistet, damit Sie nicht seitwärts scrollen müssen, um alle Spalten zu sehen.

In meinem Fall gibt es nur ein Datenbank-E-Mail-Konto.

Beachten Sie, dass die Datei sysmail_help_account_sp gespeicherte Prozedur befindet sich in der msdb Datenbank und gehört dbo Schema. Daher müssen Sie die dreiteilige Benennung (wie in meinem Beispiel) verwenden, wenn msdb ist nicht die aktuelle Datenbank.

Nur ein Konto zurückgeben

Obwohl ich nur ein Datenbank-E-Mail-Konto auf meinem System habe, ist hier ein Beispiel dafür, wie man ein einzelnes Konto zurückgibt.

Wie bereits erwähnt, können Sie den Kontonamen oder seine ID verwenden. Hier ist ein Beispiel für die Rückgabe nach Konto-ID:

EXEC msdb.dbo.sysmail_help_account_sp
    @account_id = 1;

Sie müssen die Konto-ID als int angeben .

Und hier ist ein Beispiel für die Rückgabe nach Namen:

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

Der Kontoname ist sysname .

Konto nicht gültig?

Die Angabe einer nicht vorhandenen Konto-ID gibt den folgenden Fehler zurück:

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

Die Angabe eines Kontonamens, der nicht existiert, gibt den folgenden Fehler zurück:

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