使用 sp_send_dbmail 发送附件出现错误无法初始化 sqlcmd 库,错误号为 -2147467259

2023-12-27

我正在尝试使用下面的代码测试在 SQL 中发送附件。我收到错误 - 无法初始化 sqlcmd 库,错误号为 -2147467259。发送电子邮件工作得很好,只有当添加 @query 时我才开始收到此错误。我缺少什么?

DECLARE @query nvarchar(max) = 'select top (1) * from employees';
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'Email',
@recipients = '[email protected] /cdn-cgi/l/email-protection',
@query = @query,                     
@query_attachment_filename = 'employees.csv',      
@body_format = 'HTML',
@subject = 'Test';

使用以下命令运行查询@query参数为sp_send_dbmail是在上下文中运行的msdb。这意味着对于您的查询,您实际上正在尝试引用一个对象msdb.dbo.employees。该对象不太可能存在于msdb,因为它是一个系统数据库(如果是,我建议移动它),并且由于对象不存在,查询无法解析和sp_send_dbmail产生错误。

要解决此问题,请在您为以下内容定义的查询中使用 3 部分命名@query范围:

DECLARE @query nvarchar(MAX) = N'SELECT TOP (1) * FROM YOurDatabase.dbo.employees ORDER BY YourColumn;'; --Replace values as needed
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'Email',
@recipients = '[email protected] /cdn-cgi/l/email-protection',
@query = @query,                     
@query_attachment_filename = 'employees.csv',      
@body_format = 'HTML',
@subject = 'Test';
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 sp_send_dbmail 发送附件出现错误无法初始化 sqlcmd 库,错误号为 -2147467259 的相关文章

随机推荐