SQL Serverで考える機会があったため、エントリー。
SQL Serverではストアドプロシージャを使用した複数レコードのファイル出力はコマンドレベルでサポートされていない。
sqlcmdを使用して出力できるのはPRINT文やメッセージ、あるいはSELECT文での結果の出力に限定される。
だがこれだと1レコード毎に処理しつつファイル出力できない。
カーソルを使用して処理を行い、正常処理されたレコードのみ出力するにはどうするか?
そんな時はファイル出力用のテーブルを用意しよう。
ストアドプロシージャで正常処理された結果のみそのテーブルに追加し、その後sqlcmdでselect文でファイル出力すれば良い。
処理中エラーが発生した時はエラーコードをかえしたり、エラーメッセージを返すストアドプロシージャを作成すればなお良い。