こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

SQL Server のデータをCSVファイルに保存

SQL Server のデータをCSVファイルにして保存したいのですが、簡単に出来る方法はないでしょうか?
よろしくお願いします。

投稿日時 - 2009-11-22 23:02:43

QNo.5468317

困ってます

質問者が選んだベストアンサー

お使いのSQL Serverが以下のものである場合、
・SQL Server 2008(全エディション)
・SQL Server 2005(Express Edition除く)
SQL Server Management Studioには、「データのエクスポート」というメニューがあります(データベースを選択して右クリック→タスク→データのエクスポート)。

これでデータ変換元にSQL Serverのテーブル、変換先にフラットファイルを指定し、カンマ区切りで出力するのが一番簡単でしょう。
(全部GUIでできますからね)

投稿日時 - 2009-11-23 22:52:25

お礼

ありがとうございます。

ただし、私の環境は、SQL Server 2005 Express Edition なのです。
というのも、1つには、Vista のほかの1台が古いXP であること。
もう一つの理由は、SQL Server 2008 Express は、何度かインストールに失敗してPCのリカバリを繰り返しましたので、もう怖くて手が出せないからです。

SQL Server 2005 Express Edition での方法はどんなものでしょうか?
お願いします。

でも。データのエクスポート機能はいいですね。無料のExpress にはつけないものだとばかり思っていました。

投稿日時 - 2009-11-24 23:17:31

このQ&Aは役に立ちましたか?

5人が「このQ&Aが役に立った」と投票しています

-広告-
-広告-

回答(5)

ANo.5

Access のリンクテーブルでその DB に接続して、テキスト ファイルにエクスポートしては?

投稿日時 - 2009-11-28 22:44:42

ANo.4

私はXMLは基本データベースの延長でしか扱わないので、質問者さんとは傾向は異なると思います。
勉強されたいというのに水を指す気はもちろんありませんが、個人的な意見だと何か積極的な動機がないと身につきにくい内容だとは思います。

XMLマスターという資格がありますが、その「ベーシックV2」の参考書が入門編としてはよくまとまっているので、まずはそれをご覧になってみるといいでしょう。これを読んで「実際に扱ってみたい」という気持ちになるかどうかで判断してみてはどうでしょう。

投稿日時 - 2009-11-27 12:52:18

ANo.3

#1,#2です。

ファイル出力する方法はSSISやプログラミングによる方法など、それはいろいろありますけど、
bcpが難しいとおっしゃるならば、他のはもっとお勧めできませんね。

そうなるともう方法はいくつもありません。
・SSMSでテーブルをSELECTで表示し、結果グリッドの左角を右クリック→結果に名前を付けて保存
・ExcelでSQL Serverに接続し、テーブルを読み込んでCSVに保存

>XMLデータに変換するのであれば簡単なのでしょうか?

テーブルのデータをXMLにするのは簡単ですが、ファイルにする手順は結局同じです。
試しにSSMSで「SELECT * FROM (テーブル) FOR XML PATH」と書いて実行してみてください。
結果は1つだけで、リンクが表示されますので、それをクリックするとXMLが見られます。
これを保存すれば、確かにXMLファイルになります。

ただ、「XMLならもっと楽に(アプリなどから操作を)できるのでしょうか?」という質問を見る限り、
お勧めはできません。XMLを扱ったことがなければ、CSVより楽だと思うことはないでしょう。

投稿日時 - 2009-11-25 22:31:06

お礼

ご指導ありがとうございます。

「XMLならもっと楽」という訳ではないとのことで、ごもっともと思います。
ただ、CSVでも同じことであれば、今やXMLの方が覚え甲斐があるかと思いました。
すでに書いたように、CSVデータをExcelから開いて活用することはありませんので、どうせならCSVかと。
という訳で、XMLの読み書きを覚えてみようかと思いました。いばらの道でしょうか?C#長年初心者ですけれど。

投稿日時 - 2009-11-26 21:52:48

ANo.2

#1です。

1つの方法はSQL Server Management Studio Express 2008(SSMSE)だけをインストールして、今あるSQL Server 2005 Expressに接続し、エクスポートメニューを使うことです。
http://www.microsoft.com/downloads/details.aspx?familyid=08E52AC2-1D62-45F6-9A4A-4B76A8564A2B&displaylang=ja
SSMSEは2005/2008は同居できますし、クライアントツールだけなら問題なくインストールできる可能性はあります。

もう一つは「楽に」という定義に当てはまるかは不明ですが、BCPユーティリティを使うことです。
http://msdn.microsoft.com/ja-jp/library/ms162802(SQL.90).aspx

コマンドプロンプトを開いて、
BCP testdb.dbo.testtbl out "C:\TEMP\testtbl.csv" -t, -c -Slocalhost\SQLEXPRESS -T
のように打って実行します。
(データベース名やテーブル名、ファイル名は実際のものに書き換えてください)

SQL Server認証の場合は、こんな感じです。
BCP testdb.dbo.testtbl out "C:\TEMP\testtbl.csv" -t, -c -Slocalhost\SQLEXPRESS -Usa -Ppassword

BCPはあまり柔軟な出力はできない点(たとえば先頭にフィールド名を出力できない等)は留意してください。

投稿日時 - 2009-11-25 00:00:40

お礼

貴重な情報をありがとうございます。

ただ、SQL Server Management Studio Express 2008(SSMSE)だけをインストールして、今あるSQL Server 2005 Expressに接続し、エクスポートメニューを使うことについては、やはり何度も失敗してリカバリを繰り返した恐怖体験があるために、あきらめました。
また、BCPユーティリティを使うことについては、簡単ではなさそうです。
ちなみに、XMLデータに変換するのであれば簡単なのでしょうか?(簡単の意味はいろいろあるとは思いますが)どうせCSVでも、CSVそのもののデータ表示を見たいのではなくて、データとしてテキストファイルに保存またはデータ取得をしたいだけですので。
で、XMLならもっと楽に(アプリなどから操作を)できるのでしょうか?(この意味もいろいろありますが)。
簡単に言えば、テキストファイルにデータとして保存したいだけなのですが、その方法が(多分)いろいろありそうで、どれを選択したらよいかわからないのです。

投稿日時 - 2009-11-25 21:41:01

-広告-
-広告-
-広告-
-広告-