SQL Server 2014中使用sp_send_dbmail的常规故障

4 sql-server sp-send-dbmail

我正在尝试sp_send_dbmail通过SQL Server 2014中的SQLAgent作业发送查询结果.我相信我已正确设置了我的DBMail配置文件,但在运行时:

exec msdb.dbo.sp_send_dbmail
@profile = 'TestProfile',
@recipients = 'testmail@gmail.com',
@subject = 'Test',
@query = 'SELECT id FROM TestTable',
@attach_query_result_as_file = 1,
@query_attachment_filename = 'TestValues.txt'
Run Code Online (Sandbox Code Playgroud)

我收到以下错误消息:

Failed to initialize sqlcmd library with error number -2147467259.
Run Code Online (Sandbox Code Playgroud)

谷歌搜索此错误消息没有出现任何有用的信息,可能是由于通用错误号.任何人都对此错误消息有所了解?

小智 6

我发现,尽管我的查询窗口(用于测试)和SqlAgent作业都指向我想要的数据库,但sp_send_dbmail似乎没有任何数据库上下文.我原来的帖子失败了,因为SQL不知道在哪里运行SELECT * FROM TestTable.修复是通过在@query参数中完全限定表来为sp_send_dbmail提供数据库上下文:

@query = 'SELECT id FROM testDB.dbo.TestTable'
Run Code Online (Sandbox Code Playgroud)

或者通过提供可选@execute_query_database参数:

@execute_query_database = 'testDB'
Run Code Online (Sandbox Code Playgroud)