我需要通过connect msdb.dbo.sp_send_dbmail
附加远程桌面文件我在SQL服务器中收到错误,如下所示
附件档案\ example.com \ E $ \ Attachments \ test.txt无效。
但是如果我在RUN命令中键入它,它会正确打开文件,如果我设置了本地文件路径,它可以正常工作而没有错误。
这个问题的根本原因是什么?
下面是我的SQL查询。
SET @v_recipients = 'email@example.com'
SET @v_copy_recipients = 'email2@example3.com'
SET @v_body = 'test mail'
SET @v_subject = 'Test mail'
SET @v_email_template_id = 1
SET @v_queue_id = 1
SET @v_attachments = N'\\example.com\E$\Attachments\test.txt'
set @p_database_profile_name='profile_name'
EXEC msdb.dbo.sp_send_dbmail
@recipients = @v_recipients,
@copy_recipients = @v_copy_recipients,
@body = @v_body,
@subject = @v_subject,
@file_attachments= @v_attachments,
@profile_name = @p_database_profile_name,
@body_format = 'HTML' ;
答案 0 :(得分:2)
附件在安全上下文(操作系统与SQL服务器)方面存在某些限制 - 可能 sp_send_dbmail documentation 的备注部分可能会为您提供线索:
...数据库邮件使用当前用户的Microsoft Windows安全上下文来控制对文件的访问。因此,使用SQL Server身份验证进行身份验证的用户无法使用@file_attachments附加文件。 Windows不允许SQL Server从远程计算机向另一台远程计算机提供凭据。因此,如果从运行SQL Server的计算机以外的计算机运行命令,则数据库邮件可能无法从网络共享附加文件...