とまと あんらいぷ…

エンジニアの活動記録とかつぶやきとか

GitHub

BCPを使って~Selectクエリをファイル(csv等)に出力(エクスポート)する。

テーブルデータをエクスポートする場合、
SQL Server Management Studioではタスク>データのエクスポートを選べばよろし。
でも、Expressだとデータのエクスポートが無いのだなぁ。あったらごめんよ。

なので代表的なのはBCPを使ってデータをエクスポートする方法でしょうか?

ここなんか見ると一発で解が出ました。
全ては時の中に~さん

MSにも乗ってるしね。
MS

ただ、注意事項はクエリの制限が約1023byteということらしい。役にたたねえええええ!
BCPでQUERYOUTを使用する場合の文字数制限

でもま、データデータ抜き出すぐらいなら問題ないと思います。

SQL Server上でmaster..xp_cmdshell 使って書いてもいいけど、
xp_cmdshell の実行権限をログインユーザーに付与しないとダメなのでお忘れなく。
(2005からなのかな?)
xp_cmdshell を有効にする方法(SQL Server 2005)


とりあえずサンプルできたのでソースは以下。
◆xp_cmdshell を使う場合、以下を流す。
EXEC master..xp_cmdshell 'bcp.exe "SELECT * FROM Sample.dbo.SampleTable" queryout "C:\sample.txt" -c -S ServerName -U LoginUser -P PassWord

◆batファイルを使ってローカルで実行する場合
bcp.exe "SELECT * FROM Sample.dbo.SampleTable" queryout "C:\sample.txt" -c -S ServerName -U LoginUser -P PassWord
pause

こんな感じで。

bcpには色んなオプションがあるんで、何かと便利だと思う。

BCPを使ってバックアップコマンドなんかも投げれそうです。
【SQL Server】リモート経由で行なうバックアップ操作まとめ【リモート操作】

MSヘルプ
http://msdn.microsoft.com/ja-jp/library/aa174646(SQL.80).aspx

テーマ:雑記 - ジャンル:ブログ

前のページ

FC2Ad