最初の解決策:SQLサーバーのみを使用する場合は、bcpコマンドを使用する必要があります。
bcpに注意する必要があるいくつかの事実:
- デフォルトではデフォルトのSQLインスタンスに接続するため、ボックスに複数のSQLサーバーインスタンスがあり、他のインスタンスからデータを取得する予定の場合は、サーバーを指定する必要があります。
- ストアドプロシージャを使用してデータを取得している場合、その中で一時テーブルを使用することはできず、変数テーブルのみを使用できます。
- 出力はUTF16になりますが、残念ながらUTF8で出力することはできません。
ここで、bcpに関する詳細情報を入手できます:http://msdn.microsoft.com/en-us/library/ms162802(v = sql.90).aspx
....
SET @SQLQuery='bcp "EXEC storedprocedure " queryout C:\SomeFolder\'+@FileName+ ' -w -r " " -t -T -C1252 -S '+@ServerName
PRINT @SQLQuery
EXEC @RC = master..xp_cmdShell @SQLQuery
....
2番目の解決策は、SSISパッケージを使用してファイルにエクスポートすることです。
DataFlowTaskを使用し、データベースソースとフラットファイルの宛先を使用する必要があります。
SQL 2008 R2の例はここにありますが、2005年でもそれほど変わらないはずです。
http://www.kodyaz.com/ssis/export-to-text-file-using-ssis-package.aspx
Haedrianがプログラミング言語の使用を提案した3番目のソリューション。