我正在尝试使用 sp_send_dbmail 从计划的 SQL 代理作业发送电子邮件并收到以下错误:
消息 22050,级别 16,状态 1,行 0 格式查询错误,可能参数无效 消息 14661,级别 16,状态 1,过程 sp_send_dbmail,行 504 查询执行失败:消息 15404,级别 16,状态 19,服务器 MyServer,行 1无法获取有关 Windows NT 组/用户“MyDomain\sqlagent”的信息,错误代码 0x5。
这是作业步骤中的代码:
DECLARE @SQL NVARCHAR(400)
SELECT @SQL = 'SELECT COUNT(staff_id) FROM Staff'
EXEC msdb.dbo.sp_send_dbmail
@recipients = 'me@myemail.com',
@subject = 'Email Alert',
@body = 'Test',
@query = @SQL,
@execute_query_database = 'MyDB'
SQL 代理正在域帐户 [MyDomain\sqlagent] 下运行。除了将其添加为 msdb 中 DatabaseMailUserRole 的成员之外,我还在 MyDB 数据库中授予了此用户 db_owner 权限。仍然没有运气。如果我删除 @query 和 @execute_query_database 参数,它将发送一封“测试”电子邮件。但是,我需要附加查询的结果。
任何帮助表示赞赏,谢谢。