none
Oracleのimp/expのようなツールはありませんか? RRS feed

  • 質問

  • OS:Windows2003
    SQL:SQLServer2008

    お世話になっております。

    自社開発/客先運用という形態のあるシステムで、現在SQLServer2000からSQLServer2008に移行を行っている最中です。
    自社で構築したDBを客先に持っていって再構築する可能性を考えています。
    オラクルで言うところのimp/expコマンドのようなものはSQLServer2008にありませんか?

    調べたところbcpコマンドがあるのは分かりましたが、エクスポートがテーブル単位なので望みの動作をさせるにはマッチしないように思っています。※現状は10のデータベースに、計500程度のテーブルが存在するので、1つ1つのエクスポートはとても面倒です。

    また、IntegrationServiceのインポートエクスポートツールもあるようですが、データ元先が共にDBになる場合は問題ないですが、今回のように、データ元->DB、データ先->ファイルを指定したい場合、指定がEXCELやACCESS、1テーブル毎のフラットファイルになってしまい、今度はインポートがうまくいかず、困る事なってしまいます。

    Oracleの場合は上記用件をImp/Expコマンドで必要なテーブルを参照整合性を維持しつつファイルに落とせるのですが、
    同じようなツールはSQLServer2008にありませんか?

    2009年11月24日 22:46

回答

  • T-SQLのバックアップコマンドで良いと思います。

    BACKUP DATABASE 'データベース名' TO DISK = '出力先パス' WITH INIT
    みたいな感じで出力して、

    RESTORE DATABASE 'データベース名' FROM DISK = '出力先パス'
    でリストアすれば良いかと。

    ただ環境を移行するというのが目的なのであれば、ご自身が行った方法でも構わないと思いますよ。

    何度も行う必要があるのであれば、SQLCMDを実行するバッチファイルなんかを作成しておくと
    楽だとは思いますけどね。
    2009年11月30日 12:59

すべての返信

  • 自己レスになってしまいます。

    結局適当なツールがなく、データファイル(TEST_Data.mdf, TEST_Log.ldf)を丸ごと持っていって、客先でデータベースのアタッチを行う事にしました。

    これをご覧になっている方で、このやり方はマズいんじゃねえの?と思う方はいらっしゃいますか?

    いれば、ご指摘ください。
    よろしくお願いします。

    2009年11月28日 0:21
  • T-SQLのバックアップコマンドで良いと思います。

    BACKUP DATABASE 'データベース名' TO DISK = '出力先パス' WITH INIT
    みたいな感じで出力して、

    RESTORE DATABASE 'データベース名' FROM DISK = '出力先パス'
    でリストアすれば良いかと。

    ただ環境を移行するというのが目的なのであれば、ご自身が行った方法でも構わないと思いますよ。

    何度も行う必要があるのであれば、SQLCMDを実行するバッチファイルなんかを作成しておくと
    楽だとは思いますけどね。
    2009年11月30日 12:59
  • フォーラムオペレーターの高橋春樹です。

    aviator_さん、こんにちは。
    ご投稿ありがとうございました。

    にっきーさん、こんにちは。
    MSDNフォーラムのご利用ありがとうございます。

    aviator_さんから、アドバイスを頂いたと思うのですが、如何でしょうか?試して頂けましたか?
    今回、aviator_さんからのアドバイスが、有用な情報だと思いましたので、
    勝手ながら、回答マークを付けさせてもらいました。

    今後ともMSDNフォーラムを宜しくお願いします(^_^)


    マイクロソフト株式会社 フォーラム オペレーター 高橋春樹
    2009年12月8日 9:06