在 csv 文件中发送查询结果 - 文件名
Sending a query results in csv file - file name
我正在编写将通过电子邮件发送查询结果的代码。大多数情况下它工作正常,但我有一个问题:有什么方法可以在文件名中包含当前日期吗?而不是:
@query_attachment_filename = 'report.csv'
我想要这样的东西:
report_getdate()\_.csv
我正在使用 SQL Server Management Studio 2016
相关主题:How to send a query result in CSV format?
我的查询看起来像这样并且运行良好。只需要更改文件名
感谢任何帮助。谢谢
DECLARE @AccountSite VARCHAR(255)
DECLARE @Query VARCHAR(MAX)
SET @AccountSite = '[sep= ' + CHAR(13) + CHAR(10) + 'AccountSite]'
SET @Query = 'SELECT
[AccountSite] ' + @AccountSite + '
,[Account Name]
,[Title]
,[Status]
,[Opened Date]
,[Closed Date]
,[Geo]
,[Country]
,[Region]
,[Marketing Name]
,[Case Number]
FROM [Reporting].[dbo].[Rep]'
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'BI Server'
,@recipients = 'xyz@xyz.com'
,@query = @Query
,@subject = 'Report'
,@body = 'Attached is the latest extract of the report'
,@query_attachment_filename = 'report.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 = 1
,@query_result_width = 32767;
调用SP前需要定义报表名称
declare @attachment varchar(200) = CONCAT('report_',convert(varchar(25),getdate() ,102),'.csv');
在此之后,您可以替换:
,@query_attachment_filename = 'report.csv'
通过类似的方式:
,@query_attachment_filename = @attachment
102
会将日期格式化为YYYY.MM.DD
,其他格式见:docs
注意:某些格式将包含文件名的非法字符,例如 101,其格式为 mm/dd/yyyy
。但是 /
在 Windows.
下的文件名中无效
我正在编写将通过电子邮件发送查询结果的代码。大多数情况下它工作正常,但我有一个问题:有什么方法可以在文件名中包含当前日期吗?而不是:
@query_attachment_filename = 'report.csv'
我想要这样的东西:
report_getdate()\_.csv
我正在使用 SQL Server Management Studio 2016 相关主题:How to send a query result in CSV format?
我的查询看起来像这样并且运行良好。只需要更改文件名
感谢任何帮助。谢谢
DECLARE @AccountSite VARCHAR(255)
DECLARE @Query VARCHAR(MAX)
SET @AccountSite = '[sep= ' + CHAR(13) + CHAR(10) + 'AccountSite]'
SET @Query = 'SELECT
[AccountSite] ' + @AccountSite + '
,[Account Name]
,[Title]
,[Status]
,[Opened Date]
,[Closed Date]
,[Geo]
,[Country]
,[Region]
,[Marketing Name]
,[Case Number]
FROM [Reporting].[dbo].[Rep]'
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'BI Server'
,@recipients = 'xyz@xyz.com'
,@query = @Query
,@subject = 'Report'
,@body = 'Attached is the latest extract of the report'
,@query_attachment_filename = 'report.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 = 1
,@query_result_width = 32767;
调用SP前需要定义报表名称
declare @attachment varchar(200) = CONCAT('report_',convert(varchar(25),getdate() ,102),'.csv');
在此之后,您可以替换:
,@query_attachment_filename = 'report.csv'
通过类似的方式:
,@query_attachment_filename = @attachment
102
会将日期格式化为YYYY.MM.DD
,其他格式见:docs
注意:某些格式将包含文件名的非法字符,例如 101,其格式为 mm/dd/yyyy
。但是 /
在 Windows.