単純にテーブルをそのままCSVにエクスポートなら、コマンドプロンプトなりbatファイルなりで
bcpコマンドを叩けば成功した。
参考
bcp ユーティリティ
引数つきのストアドプロシージャの実行結果をエクスポートしようとした時に上手くいかなかった。
また、引数も動的に決定したいのでbcpコマンド自体をストアドに入れてしまって
ジョブで定期実行するなどしたい。
まずはmaster.dbo.xp_cmdshell(master.sys.xp_cmdshell?)を有効にする必要があるので
以下を実行する。
-- To allow advanced options to be changed. EXEC sp_configure 'show advanced options', 1 GO -- To update the currently configured value for advanced options. RECONFIGURE GO -- To enable the feature. EXEC sp_configure 'xp_cmdshell', 1 GO -- To update the currently configured value for this feature. RECONFIGURE GO
実行結果は以下の通り
構成オプション 'show advanced options' が 0 から 1 に変更されました。RECONFIGURE ステートメントを実行してインストールしてください。 構成オプション 'xp_cmdshell' が 0 から 1 に変更されました。RECONFIGURE ステートメントを実行してインストールしてください。
これで、ストアドプロシージャ内で以下のような感じでbcpコマンドが使えるハズです。
EXECUTE xp_cmdshell 'bcp AdventureWorks2008R2.Sales.Currency2 in Currency.dat -T -c' EXECUTE xp_cmdshell 'bcp "SELECT Name FROM AdventureWorks2008R2.Sales.Currency" queryout Currency.Name.dat -T -c'
0 件のコメント:
コメントを投稿