我正在尝试使用下面的代码测试在 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(使用前将#替换为@)