解決のためどなたかアドバイス頂ければ幸いです。どうぞよろしくお願い致します。
実現したい処理:
SQL Server 2012 SP4の環境でSQL AGENT JOB登録から定期的にクエリを実行し、他全ての登録済SQL AGENT JOBの実行日時と処理時間(秒)を取得するクエリを実装したい。
SQL Management Studio上でクエリを直接実行した結果:
以下の通り意図した結果が取得される。各カラム間カンマ区切りによるCSVファイルとしてのインポートも問題なく可能。
解決したい問題:
同じクエリをSQL Agent Jobとして登録実行し、その結果を指定したOutPutファイルに出力した場合、以下画像の様に余計なスペースやハイフン大量に含まれてしまいます。
今までに試した事:
- メインSELECT文で取得される各カラムに対し、LTRIM(カラム名),RTRIM(カラム名), LTRIM(RTRIM('カラム名'))またはREPLACE(カラム名,' ','')等を試しましたが、効果はありませんでした。
- クエリの先頭で、set ansi_padding offを宣言し実行しましたが、効果はありませんでした。
クエリ:
SQL
1select 2name, 3format(a.run_date, '0000-00-00') as run_date, 4format(a.run_time, '0:00:00') as run_time, 5LEFT(a.exec_duration, 2) + ':' + SUBSTRING(a.exec_duration, 3, 2) + ':' + RIGHT(a.exec_duration, 2) AS execution_time 6from 7( 8select 9job.name,his.instance_id,his.job_id,his.run_date,his.run_time, 10RIGHT(REPLICATE('0', 5) + CONVERT(varchar, his.run_duration), 6) AS exec_duration 11from 12msdb.dbo.sysjobhistory as his 13join msdb.dbo.sysjobs job 14on job.job_id = his.job_id 15where 16his.step_id = 0 17and his.run_status = 1 18) a
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。