2017-06-02 18 views
0

我想在sp_send dbmail中附加多个文件,但文件名和路径随着其更改而变化。以下是我的SQl脚本。在脚本下面运行后,我只收到1个邮件附件文件,但有多个文件以ERR作为名称开头。使用路径和文件名作为变量在sp_send_dbmail中附加多个文件

有人可以帮我吗?

declare @files table (Filename varchar(1000)) 
declare @filename varchar(500) 
declare @foldername varchar(1000) = REPLACE(CONVERT(varchar(10), GETDATE()-1, 112), '/', '') 
declare @folderpath varchar(500) 
declare @filepath varchar(1000) 

set @folderpath = 'xp_cmdshell ''dir E:\Batch\Error_Logs\'[email protected]+ ' /b''' 

insert into @files exec (@folderpath) 

SELECT @filename = Filename from @files where Filename like 'ERR_%' 

set @filepath = 'E:\Batch\Error_Logs\'[email protected]+'\'[email protected] 

EXEC msdb.dbo.sp_send_dbmail 
@profile_name = 'DB_Mail' 
, @recipients = '[email protected]' 
, @subject = 'sub' 
, @body = 'pfa' 
, @file_attachments = @filepath; 

回答

1

据对sp_send_mail微软的文档,你可以界定(分离)半冒号做它()。

[@ file_attachments =]“file_attachments”是文件名的分号分隔 列表附加到电子邮件。必须将列表 中的文件指定为绝对路径。附件列表的类型为 nvarchar(max)。默认情况下,数据库邮件将文件附件限制为每个文件1 MB。

您可以尝试连接所有文件名与分号。

相关问题