其实我想要导出一个excel(.xlsx)文件格式。以下是我的查询,用于使用 sp_send_dbmail
发送.csv文件格式 EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'eMail Notification',
@recipients = 'abc@gmail.com',
@query = 'use [dbname] select im.FullName as EmployeeName, im.MemberIC as NRIC
from tblIndividualMst im
where im.RecStatus = ''A''
and (im.DateOfResign >= getdate() or im.DateOfResign is null)' ,
@subject = 'Test',
@attach_query_result_as_file = 1 ,
@query_attachment_filename = 'test.csv',
@query_result_separator=',',@query_result_width =32767,
@query_result_no_padding=1;
所以当我试图修改" test.csv"的文件格式时to" test.xlsx",所有数据都在test.xlsx中搞乱了。那么如何修改我的查询以获得正确的.xlsx文件格式。
任何帮助表示赞赏。谢谢!!!
答案 0 :(得分:0)
我曾经尝过它。您可以使用此方法,但这可能不适用于sp_send_dbmail:
insert into OPENROWSET(
'Microsoft.Jet.OLEDB.4.0',
'Excel 8.0;Database=d:\testfile.xls;;HDR=YES',
'SELECT * FROM [Sheet1$]')
select * from table1
或者,我建议使用实际构建用于执行ETL相关任务的SSIS。您可以从任何源写入Excel目标,并使用发送邮件任务进行发送。它也可以配置为与SQL Server代理一起使用。
SSIS详细信息: