我研究了这个,我知道SO上也有类似的问题。然而,似乎没有任何帮助足以解决我的问题。
首先,我对SQL很有经验,但我们最近收购了两名实习生。他们现在已经和我们在一个星期了,他们很难阅读代码,所以我想让这个(他们的任务团队的一部分)尽可能简单。
基本上,下面的代码是较大的存储过程的一部分,该存储过程每天早上作为一个作业运行。它应该保存在名为GoodsIN的指定文件夹中作为xlsx。但是,这会每天覆盖自己,而不是生成新的XLSX文件。
@database_name=N'master',
@output_file_name=N'E:\goodsindata\Goodsin.xlsx',
@flags=0
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
EXEC @ReturnCode = msdb.dbo.sp_update_job @job_id = @jobId, @start_step_id =
1
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
EXEC @ReturnCode = msdb.dbo.sp_add_jobschedule @job_id=@jobId, @name=N'Daily
0900',
如果有人可以提供帮助,我会非常感激,正如所提到的那样我们实习生的理想情况,这将尽可能简单易读(最初,我希望它通过电子邮件发送出来,但对他们来说有点太高级了)我会让他们在暑假结束前阅读SQL!
一如既往地感谢大家,
答案 0 :(得分:1)
附加日期(或其他一些唯一字符串),否则将连续覆盖该文件。
@database_name=N'master',
@output_file_name=N'E:\Rebekah\PaidClaims' + convert(varchar(10),getdate(),110) + '.xlsx',
@flags=0
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
EXEC @ReturnCode = msdb.dbo.sp_update_job @job_id = @jobId, @start_step_id =
1
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
EXEC @ReturnCode = msdb.dbo.sp_add_jobschedule @job_id=@jobId, @name=N'Daily
0900',
这将产生:E:\Rebekah\PaidClaims07-31-2017.xlsx