我想在sp_send dbmail中附加多个文件,但文件名和路径在变化时是可变的。下面是我的SQl脚本。在脚本下面运行后,我只收到一个邮件作为附件,但有多个文件以ERR作为名称开头。
有人可以帮我吗?
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\'+@foldername+ ' /b'''
insert into @files exec (@folderpath)
SELECT @filename = Filename from @files where Filename like 'ERR_%'
set @filepath = 'E:\Batch\Error_Logs\'+@foldername+'\'+@filename
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'DB_Mail'
, @recipients = 'person@example.com'
, @subject = 'sub'
, @body = 'pfa'
, @file_attachments = @filepath;
答案 0 :(得分:1)
根据Microsoft sp_send_mail上的文档,您可以使用半冒号(;)分隔(分隔)它。
[@ file_attachments =]' file_attachments'是分号分隔的 要附加到电子邮件的文件名列表。列表中的文件 必须指定为绝对路径。附件列表是类型 为nvarchar(最大)。默认情况下,数据库邮件将文件附件限制为1 每个文件的MB。
您可以尝试使用半冒号连接所有文件名。