SQL Serverでは、sysmail_help_account_sp
を使用できます。 msdb
のストアドプロシージャ データベースを使用して、すべてのデータベースメールアカウントのリストを取得します。
アカウント名またはIDに基づいてアカウント情報を返すこともできます。
例
実例を示します。
EXEC msdb.dbo.sysmail_help_account_sp;
結果(垂直出力を使用):
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
すべての列を表示するために横にスクロールする必要がないように、垂直出力を使用して結果をリストしました。
私の場合、データベースメールアカウントは1つだけです。
sysmail_help_account_sp
に注意してください ストアドプロシージャはmsdb
にあります データベースであり、dbo
が所有しています スキーマ。したがって、msdb
の場合は、(私の例のように)3つの部分からなる命名を使用する必要があります。 現在のデータベースではありません。
アカウントを1つだけ返す
システムにデータベースメールアカウントが1つしかない場合でも、1つのアカウントを返す方法の例を次に示します。
前述のように、アカウント名またはそのIDを使用できます。アカウントIDで返す例を次に示します。
EXEC msdb.dbo.sysmail_help_account_sp
@account_id = 1;
アカウントIDをintとして提供する必要があります 。
名前で返す例は次のとおりです:
EXEC msdb.dbo.sysmail_help_account_sp
@account_name = 'DB Admin';
アカウント名はsysnameです 。
アカウントが無効ですか?
存在しないアカウントIDを指定すると、次のエラーが返されます。
Msg 14606, Level 16, State 1, Procedure msdb.dbo.sysmail_verify_account_sp, Line 33 account id is not valid
存在しないアカウント名を指定すると、次のエラーが返されます:
Msg 14607, Level 16, State 1, Procedure msdb.dbo.sysmail_verify_account_sp, Line 42 account name is not valid