• ベストアンサー

データをファイルにダンプ(エキスポート)する方法

SQLサーバー7及び2000 テーブルのデータをローカルのファイルへダンプ(エキスポート)をストアド,SQL文でかけないでしょうか。SQLサーバーのデータがテキストエディタで見えるようになればOKですので。教えてくださいませ。

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

  • ベストアンサー
  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.1

DAOを使ってテキストで落とすのでいいのでしょうか? 参照設定でDAO Object Libraryを参照しているとして Option Explicit Private Sub cmdExport_Click() Dim strConnect As String Dim strSQL As String Dim db As DAO.Database strConnect = "ODBC;Driver={SQL Server};Server=(local);" & _ "Database=;UID=;PWD=;"  'ODBCの接続文字列の指定 Set db = DBEngine.OpenDatabase(strDatabase) strSQL = "SELECT * INTO " & _ "[Text;DATABASE=C:\My Documents].[Test.CSV] " & _ "FROM テーブル名" db.Execute strSQL db.Close End Sub これで行けると思いますが。

lord_chan
質問者

お礼

これはアクセスなどのVBAで書くのでしょうか?それともSQLサーバーで書けますか?

lord_chan
質問者

補足

なるほど,参考になりました。SELECT * INTO ですね。

その他の回答 (2)

  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.3

VBで書いてありますがSQLでもSelect Into など使えるのでいけると思いますが。

lord_chan
質問者

補足

ありがとうございます。参考になります。

  • utakataXEX
  • ベストアンサー率69% (711/1018)
回答No.2

まずは DTSパッケージか bcp のバッチを作成。 それを xp_cmdshell でストアドから呼び出し。 みたいな事よくやってます。

lord_chan
質問者

お礼

ありがとうございます。参考になります。

関連するQ&A

  • SQL 2000 にあった一覧のエクスポートはSQL 2005では無いですか?

    SQL 2000 Server のEnterprise Managerにある一覧のエクスポートボタンが、SQL 2005 ServerのManagement Studioにありません、何か良い手はあるのでしょうか。 やりたいことはテーブル、ストアドプロシージャ、ビューの一覧をエクスポートしたいです。

  • Business Objectからエクスポート

    すみません、Business Objectを今回初めて使用しました。 レポートで作成したデータをSQL Serverにエクスポートしたいのですが、 エクスポート機能ではローカルにコピーすることしか出来きず、 SQL Serverからローカルにあるデータをインポートしました。 ちょっと面倒くさいので何かよい方法はないかと思っているのですが。。。

  • SQL ServerからテキストにエクスポートしたデータをAccessやExcelで読み込みたい

    SQL Server内にあるデータをテキスト形式にしてエクスポートを行ったのですがいざ、開いてみるとごちゃごちゃに なっておりうまく読む事ができません。 これを、ExcelやAccessなどのデータに変換する方法、もしくはきちんと表列がソートされて読める方法を教えていただきたいです。 尚、テキスト形式へのエキスポートはSQLにある デフォルトの設定で行いました。 教示をお願いいたします。 ※SQL Serverから直接ExcelやAccessへエクスポートする 方法はエクスポートの途中にエラーが出てしまうので利用する事ができませんでした。あくまでテキストだけでしか エクスポートが成功しないのが前提です。

  • ストアドプロシージャでcsvファイルへデータにエクスポート

    いつも勉強させていただいています。 ストアドプロシージャの勉強をし始めて間もない素人ですがよろしくお願いします。 SQL-server2005でテーブルをCSVファイルに、ストアドプロシージャを使ってそのままエクスポートする、と言うことをやっています。 以下作成したストアドプロシージャです。 ******************************************* CREATE PROCEDURE [ストプロ名] AS DECLARE @command VARCHAR(200) BEGIN SET @command = ' bcp [データベース名].[スキーマ].[テーブル] out C:\XXXX\aaa.txt -PXXXXXX -UXXXXXX -SXXXXXX' EXECUTE master.dbo.xp_cmdshell @command END **************************************** 解析ボタン、実行ボタンをクリックしてもエラーは出ません。 「ストアドプロシージャの実行」を選択して実行させても、 アラーは表示されず、ファイルも作成されません。 xp_cmdshell が有効になるように設定もしました。 残念ながら検討すらつかない状態です。ぜひご教授お願いします。

  • phpMyAdminからphpMyAdminへのデータ移行

    レンタルサーバーにあるMySQLのデータをphpMyAdminからエクスポートし、ローカルホストにあるMySQLにphpMyAdminのSQLでデータをインポートしようとしています。 方法は以下の通りです。 レンタルサーバーのphpMyAdminを開き、エクスポートしたいデータベースを選択します。 エクスポートを開き、 全選択 SQL 構造: 「DROP TABLE」を追加 「IF NOT EXISTS」を追加 「AUTO_INCREMENT」値を追加 逆クオートでテーブル名やフィールド名を囲む データ: 完全な INSERT 文を作成する バイナリフィールドは 16 進数を使用する エクスポート形式:INSERT ファイルで保存する ファイル名テンプレート:__DB__ テンプレートを覚える 圧縮無し SJISエンコーディングへ変換する で、実行します。 8.43 MB (8,846,019 バイト)37602行 からなる膨大なsqlファイルが作成されます。 次にローカルホストのphpMyAdminを開き、インポートしたいデータベースを選択します。 SQLを開き、 参照より、エクスポートしたsqlファイルを読み込み 圧縮:Autodetect エンコーディングnon で、実行します。 実行の結果、 「SQLクエリー無し」 のメッセージで、SQLが終了します。 もちろん、データベースは移行されていません。 レンタルサーバーのMySQLをローカルのAccessでデータ加工し、レンタルサーバーのMySQLに戻すという作業をしたいだけなのですが(ローカルでバックアップも取っておきたい)、何か解決策はありませんでしょうか?

  • 異なるサーバーにファイルをエクスポートしたい

    こんにちわ 現在Aというサーバーにおいて、とあるテーブル(他のテーブルとのリンク等無し)がサーバーの容量を圧迫するぐらいに肥大してしまったので、このテーブルのデータを一度別のサーバBにエクスポートしてバックアップをとり、このテーブルにTruncateをかけてインデックスを再構築し、データを戻すということを考えています。 しかし、別のサーバーにデータをエクスポートする方法がわかりません。実の事を言えばexpコマンド自体、あまり分かっていません exp ユーザー/パスワード file=エクスポートファイル名、パス table=DB名.テーブル名 という所までは分かっているのですが、この後、どのようなオプションや記述をすれば良いのかが分かりません。 すみませんが、どのようにすれば別のサーバーにファイルをエクスポートできるのでしょうか? 尚、一度サーバーAにおいてFTPでBに移すという方法は、既にサーバーの残り容量が少ない為、不可能な状態です。 OSはSolaris、Oracleのバージョンは9iです。 お手数をおかけしますが、宜しくお願いします。

  • エクスポートしたファイルを別テーブルへインポートする方法

    エクスポートしたファイルを別テーブルへインポートする方法を教えてください。 perlでテーブル名称だけを置換する方法を考えたのですが、ダンプファイルのレコード数が多いため、時間がかかりすぎてしまいます。 うまくデータ部分以外のヘッダ部分のテーブル名を変えるか、それ以外の方法ってないのでしょうか?

  • 前日分のデータだけをスケジュールでエクスポートしたい

    SQLサーバAからあるテーブルの前日分のデータだけをスケジュールでSQLサーバBにエクスポートしたいのですが、 日付を指定ではなくて、常に前日分のみを吐き出す方法はあるのでしょうか。 サーバはA,B共にSQL2000を使用しています。

  • 持ち運びできるファイルの形になるようにエクスポートしたい

    sqlserverで、何らかのファイルへデータベースのエクスポートを行い、 2つのPC間(ネットワークはつながっていない)で、データベースの移行を頻繁に(1日1回程度)したいと思っています。 (開発環境を持ち歩く意図です。) 環境は下記の通りです。 SQL Server 2005 Express Edition SQL Server Management Studio Express Edition DTSWizard.exeでエクスポートできるのは知っているのですが、 「ファイル」へのエクスポートは貧弱らしく、困っています。 mdbファイルへのエクスポートはできるのですが、 いざやってみると、VIEWをエクスポートするとテーブルとしてエクスポートされてしまい、 インポート時にはVIEWとしては再現してくれません。 ということで、質問は下記の通りです。 SQL Server 2005 Express Edition で、 ・USBメモリ等で持ち運び可能な形(ファイル)にエクスポート ・VIEWも、VIEWとして再現される という条件を満たしたエクスポートの方法はあるでしょうか。 以上です。 ご回答よろしくお願い致します。

  • テーブルのエクスポート・インポート

    SQL Server2005 を使用しています。 テーブルのインポート・エクスポートに関して質問があります。 今まで、Oracleを主に使用していて、「EXP」「IMP」コマンドを使用して DMPファイルを介して別PCのデータベース間でテーブルのやり取りをしていました。(DB上のテーブルすべてや特定のテーブルのみなど) 同様のことをSQL Serverで実現したく下記を試したのですが上手くいきません。 1.Management Studio で「タスク」→「データのインポート(エクスポート)」   フラットファイル、Excel、MDBファイルなど試したのですが、   これらの中間ファイルを介した際にデータ型が変わってしまい   元の型のまま戻せない。   Oracleの「DMP」ファイルのようなものには落とせないのでしょうか? 2.「bcp」コマンド   これに関しては、複雑でよくわかりませんでした。   もし、このコマンドで実現可能であれば、やり方を教えて下さると   助かります。 以上、ながなが書きましたが宜しくお願い致します。