我正在研究ETL,我在SSIS包中的SQL任务中有以下sql代码.这就是我编码的方式.我正在从表中选择一个数据,并将该查询的结果作为文件.我希望以CSV格式发送此附件.我该怎么做?
EXEC sp_send_dbmail @profile_name='default',
@recipients='dev@null.com',
@subject=@SUB,
@body=@BODY,
@query= 'SELECT [MID],[HID],[MeC],[LC],[RowCDate]
FROM [JBC].[dbo].[Table1] WHERE RowCDate >= GETDATE()
',
@attach_query_result_as_file=1
Run Code Online (Sandbox Code Playgroud)
任何帮助将非常感激.提前致谢.
Jod*_*dyT 33
添加@query_result_separator
应该做的伎俩.
EXEC sp_send_dbmail @profile_name='default',
@recipients='dev@null.com',
@subject=@SUB,
@body=@BODY,
@query= 'SELECT [MID],[HID],[MeC],[LC],[RowCDate]
FROM [JBC].[dbo].[Table1] WHERE RowCDate >= GETDATE()
',
@attach_query_result_as_file=1,
@query_attachment_filename = 'Results.csv',
@query_result_separator = ','
Run Code Online (Sandbox Code Playgroud)
添加@query_result_no_padding = 1
可能会稍微清理一下结果.所有这些论点都可以在这里找到
小智 12
@query='
SET NOCOUNT ON;
select ''sep=;''
select ''Col1'',''Col2'',''Col3'',''Col3''
select CONVERT(NVARCHAR,Col1),ISNULL(Col2, ''''),Col4
FROM ...
SET NOCOUNT OFF;
',
--Additional settings
@query_attachment_filename = '*.csv',
@query_result_separator = ';',
@attach_query_result_as_file = 1,
@query_result_no_padding= 1,
@exclude_query_output =1,
@append_query_error = 0,
@query_result_header =0;
Run Code Online (Sandbox Code Playgroud)
小智 6
添加
'[sep=,' + CHAR(13) + CHAR(10) ColumnName]
Run Code Online (Sandbox Code Playgroud)
结果解决了这个问题
见源