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

Vérifier l'état de tous les messages de messagerie de base de données dans SQL Server (T-SQL)

Si vous utilisez la messagerie de base de données dans SQL Server, vous pouvez utiliser le sysmail_allitems view pour vérifier l'état de tous les e-mails que Database Mail a traités.

Exemple

Voici un exemple de vérification de l'état de tous les messages électroniques. Notez que cela doit être fait sur le msdb base de données.

SELECT * FROM msdb.dbo.sysmail_allitems;

Résultat (en utilisant la sortie verticale) :

mailitem_id                 | 1
profile_id                  | 1
recipients                  | [email protected]
copy_recipients             | NULL
blind_copy_recipients       | NULL
subject                     | SQL Server Agent Job: FAILED
body                        | Your favorite SQL Server Agent job just failed
body_format                 | TEXT
importance                  | NORMAL
sensitivity                 | NORMAL
file_attachments            | NULL
attachment_encoding         | MIME
query                       | NULL
execute_query_database      | NULL
attach_query_result_as_file | 0
query_result_header         | 1
query_result_width          | 256
query_result_separator      |  
exclude_query_output        | 0
append_query_error          | 0
send_request_date           | 2020-08-24 02:40:48.093
send_request_user           | sa
sent_account_id             | NULL
sent_status                 | failed
sent_date                   | 2020-08-24 02:41:53.000
last_mod_date               | 2020-08-24 02:41:53.290
last_mod_user               | sa

J'ai utilisé la sortie verticale ici pour que vous n'ayez pas besoin de faire défiler latéralement pour voir toutes les colonnes.

J'affiche également uniquement la première ligne (même si quatre lignes ont été renvoyées), pour rester concis.

Le voici à nouveau, sauf que cette fois, je vais afficher les quatre lignes. Cette fois, je vais passer à la sortie horizontale normale et je ne spécifierai que quelques colonnes.

SELECT
    mailitem_id,
    sent_status,
    send_request_date
FROM msdb.dbo.sysmail_allitems;

Résultat (en utilisant la sortie verticale) :

+---------------+---------------+-------------------------+
| mailitem_id   | sent_status   | send_request_date       |
|---------------+---------------+-------------------------|
| 1             | failed        | 2020-08-24 02:40:48.093 |
| 2             | failed        | 2020-08-24 02:47:40.833 |
| 3             | sent          | 2020-08-24 03:58:57.887 |
| 4             | sent          | 2020-08-24 04:11:19.300 |
+---------------+---------------+-------------------------+