我正在从 SQL Server 发送电子邮件,并且需要将表上列的值映射sent_status
到msdb.dbo.sysmail_mailitems
更具描述性的内容。
到目前为止,我已经确定了两个值:
- 1 = '发送'
- 2 = '失败'
还有更多可能的值吗?如果有,它们代表什么?
我正在从 SQL Server 发送电子邮件,并且需要将表上列的值映射sent_status
到msdb.dbo.sysmail_mailitems
更具描述性的内容。
到目前为止,我已经确定了两个值:
还有更多可能的值吗?如果有,它们代表什么?
sent_status, --0 new, not sent, 1 sent, 2 failure or 3 retry.
在相关表的 MSDN 页面msdb.dbo.sysmail_allitems
上,描述为sent_status
:
邮件的状态。可能的值为:
sent - 邮件已发送。
未发送 - 数据库邮件仍在尝试发送邮件。
重试 - 数据库邮件未能发送消息,但正在尝试再次发送。
failed - 数据库邮件无法发送消息。
将两个视图连接在一起,如下所示:
SELECT DISTINCT mi.sent_status, ai.sent_status
FROM
msdb.dbo.sysmail_allitems ai
FULL OUTER JOIN
msdb.dbo.sysmail_mailitems mi ON
ai.mailitem_id = mi.mailitem_id
会产生一个关系,可以用下面的CASE
语句来表达:
SELECT
CASE sent_status
WHEN 0 THEN 'Unsent'
WHEN 1 THEN 'Sent'
WHEN 2 THEN 'Failed'
WHEN 3 THEN 'Retrying'
END AS sent_status_desc
FROM msdb..sysmail_mailitems