sql >> データベース >  >> RDS >> Sqlserver

SQL Server(T-SQL)のデータベースメールアカウントのリストを取得する

    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

    1. 私の無効な文字はどこにありますか(ORA-00911)

    2. SQL Server AlwaysOn可用性グループ:インストールと構成、パート2

    3. 重複するエントリを削除するにはどうすればよいですか?

    4. 自動化されたクラウドデータベース展開のガイド