2017-07-31 49 views
0

私はこれを研究しましたが、私には同様の問題があることを認識しています。しかし、私の解決に役立つものはないようです。ジョブ出力自体が上書きされ続けます

私はまずSQLを経験しましたが、最近2人のインターンを取得しました。彼らは今一週間私たちと一緒にいて、彼らはコードを読むことに苦労しているので、私はこれを(彼らのタスクチームの一員として)できるだけシンプルにしておきたいと思います。

基本的に、以下のコードは、午前中に毎日ジョブとして実行されるより大きなストアドプロシージャの一部です。 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 @[email protected], @name=N'Daily 
0900', 

、私は本当に私たちが理想的でインターンを持って述べたように、それを感謝し、これは、私はそれが出て電子メールで送信たかった、最初に(できるだけ読みするような単純なことだろうが、それは多少あまりにも高度でした彼らのために)私は彼らに夏の終わりになる前にSQLを読ませるでしょう!いつもみんなとして

おかげで、

+0

まあ....出力ファイル名がハードコードと静的です。もちろん、これが実行されるたびに上書きされます。これを処理する最も一般的な方法は、現在の日時をファイル名の一部として使用することです。 –

+0

素晴らしいアドバイスSean Lange。ありがとう! – JWain

答えて

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 @[email protected], @name=N'Daily 
0900', 

これが生成されます:E:\Rebekah\PaidClaims07-31-2017.xlsx

Here are some other date conversion codes.

関連する問題