我正在尝试创建一个SQL代理作业,该作业每天自动运行以下查询并生成一个CSV文件,该文件存储在C:\ test.csv上,并通过电子邮件发送给人们。
我在网上尝试了各种选项,但找不到适合我查询的选项。它是来自多个数据集的数据,这些数据集放在一个文件中,以便导入到另一个电子表格中进行报告。
感谢任何帮助。
我已经使用执行查询的任务创建了一个SQL作业,并且我尝试使用高级页面上的高级选项来输出文件,但是输出文件没有得到更新。
ActivityInfo.SCREEN_ORIENTATION_PORTRAIT
答案 0 :(得分:1)
您可以使用xp_cmdshell
创建csv文件,但需要先启用它:
EXEC sp_configure 'show advanced options', 1;
GO
-- To update the currently configured value for advanced options.
RECONFIGURE;
GO
-- To enable the feature.
EXEC sp_configure 'xp_cmdshell', 1;
GO
-- To update the currently configured value for this feature.
RECONFIGURE;
GO
然后构建您的bcp命令并使用xp_cmdshell
declare @fileName varchar(4000) = 'C:\Temp\MyFile.csv'
declare @bcpCommand varchar(4000)
SET @bcpCommand = 'bcp "SELECT ' + @HoistSched + ' AS Hoist_Sched_today, ' + @HoistSchedTom + ' as Hoist_Sched_Tom" queryout ' + @fileName + ' -c -t , -r \n -S . -T'
select @bcpCommand
EXEC master..xp_cmdshell @bcpCommand
然后使用sp_send_dbmail
EXEC msdb.dbo.sp_send_dbmail
@profile_name='MyEmailProfileName',
@recipients='fgfh@test.com',
@file_attachments=@fileName
如果您不需要保存文件但只需通过电子邮件发送结果,那么您需要根据查询构建电子邮件正文,并使用@ sp_send_dbmail
的