sql >> Database >  >> RDS >> Sqlserver

Een lijst met database-e-mailaccounts krijgen in SQL Server (T-SQL)

In SQL Server kunt u de sysmail_help_account_sp opgeslagen procedure op de msdb database om een ​​lijst van alle Database Mail-accounts op te halen.

Je kunt ook accountgegevens retourneren op basis van de accountnaam of ID.

Voorbeeld

Hier is een voorbeeld om te demonstreren.

EXEC msdb.dbo.sysmail_help_account_sp;

Resultaat (met verticale uitvoer):

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

Ik heb de resultaten weergegeven met verticale uitvoer, zodat u niet zijwaarts hoeft te scrollen om alle kolommen te zien.

In mijn geval is er maar één Database Mail-account.

Merk op dat de sysmail_help_account_sp opgeslagen procedure staat in de msdb database, en het is eigendom van de dbo schema. Daarom moet u de driedelige naamgeving gebruiken (zoals in mijn voorbeeld) als msdb is niet de huidige database.

Slechts één account retourneren

Ook al heb ik maar één database-e-mailaccount op mijn systeem, hier is een voorbeeld van hoe je één account kunt retourneren.

Zoals vermeld, kunt u de accountnaam of de ID ervan gebruiken. Hier is een voorbeeld van het retourneren op account-ID:

EXEC msdb.dbo.sysmail_help_account_sp
    @account_id = 1;

U moet de account-ID opgeven als een int .

En hier is een voorbeeld van het op naam retourneren:

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

De accountnaam is sysname .

Account niet geldig?

Als u een account-ID opgeeft die niet bestaat, wordt de volgende fout geretourneerd:

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

Als u een accountnaam opgeeft die niet bestaat, wordt de volgende fout geretourneerd:

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

  1. Verschil tussen Oracle's plus (+) notatie en ansi JOIN notatie?

  2. Postgresql GROUP_CONCAT equivalent?

  3. Hoe een MySQL-weergave te maken

  4. RDBMS versus NoSQL