我有以下代码:
DECLARE
@ATTACH_FILE nvarchar (max),
@SQL varchar (max);
/* ============================================================== */
-- add files to attach
SET @ATTACH_FILE = N'\\C:\attach\file.txt';
SET @SQL = 'exec msdb.dbo.sp_send_dbmail
@profile_name = ''ProfileMail'',
@recipients = ''my@mail.ru'',
@reply_to = ''my@mail.ru'',
@subject = ''subject mail'',
@body = ''body mail'',
@file_attachments='' '+ @ATTACH_FILE +' '' ';
-- send mail
EXEC(@SQL);UPD移除设置为@ATTACH_FILE =N‘C的两个斜杠:\附加\file.txt’;-错误持续存在
我收到一个错误:无效的文件附件\C:\attach\file.txt (文件位于server上)。
我不明白问题出在哪里。
发布于 2013-11-13 07:21:20
错误与附件地址中的'//'和extra space有关。,它现在可以工作了。
declare @attach_file nvarchar(100),@sql varchar(max)
SET @ATTACH_FILE = N'C:\attach\file.txt';
SET @SQL = 'exec msdb.dbo.sp_send_dbmail
@profile_name = ''ProfileMail'',
@recipients = ''my@mail.ru'',
@reply_to = ''my@mail.ru'',
@subject = ''subject mail'',
@body = ''body mail'',
@file_attachments='+char(39)+@ATTACH_FILE+char(39);
-- send mail
Exec(@sql)发布于 2013-11-13 06:51:31
替换这个
SET @ATTACH_FILE = N'\\C:\attach\file.txt';有了这个
SET @ATTACH_FILE = N'C:\attach\file.txt';发布于 2013-11-13 07:28:36
正如您指定的那样,该文件在Sql server.Find中,使用下面的查询显示文件的确切地址。
SELECT name, physical_name AS current_file_location
FROM sys.master_files并使用您的邮件附件中的地址。
https://stackoverflow.com/questions/19947209
复制相似问题