none
SQL Server 2005で、NULL値があるCSVファイルを、Null値を保持したまま数値型の列にインポートしたい RRS feed

  • 質問

  •  SQL Server 2005 で、CSVファイルを SQL Server Management Studio のインポートウィザードでインポートしようとしております。

     CSVファイルには、例えば「販売個数」という数値型でインポートしたい列に、NULL値のデータが含まれています。

     インポート先のテーブルは、既にデータが無いひな形だけの状態でSQL Server内に作ってあります。

     CSVファイルの「販売個数」列の値は、インポート先のテーブルの数値型の列である「販売個数」にインポートする必要があります。

     ウィザードを使って フラットファイルをインポートする手順で、「詳細設定」からこの「販売個数」のデータ型を int型に指定してインポートしました。

     すると、CSVファイルではNULL値だったデータに、すべてゼロが入ってしまいました。

     それではと、ウィザードの「詳細設定」で特段データ型の指定をしないまま(文字列型として認識されました)インポートしようとしたら、途中でエラーが発生してしまい、インポートできませんでした。

     あくまでもCSVファイル内のデータがNULL値であれば、NULL値のまま、インポート先のテーブルの数値型の列にインポートしたいのですが、インポートウィザードを使う方法で、何か良い方法は無いものでしょうか。

     何卒お知恵をお借りしたく、よろしくお願いいたします。

    2010年6月23日 16:08

回答

  • 私が調べた限り無理そうですね・・・

    代替案として、以下のようにBULK INSERTを使用するか、

    SQL Server 2008 TSVファイルからのデータのインポートでnull値を保持できない
    http://okyuu.com/ja/question/6860

    もしくは、ウイザードの最後でパッケージとして保存し、 SQL Server Business Inteligence Development Studio(BIDS)でそれを編集して実行すると可能なようです。

    Sql Server 2005 Import Wizard - keep NULLS - sqlserver-dts
    http://dbaspot.com/forums/sqlserver-dts/338931-sql-server-2005-import-wizard-keep-nulls.html

    #環境が手元に無いため確認できません。すみません。


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://blogs.wankuma.com/trapemiya/
    • 回答の候補に設定 山本春海 2010年6月29日 7:21
    • 回答としてマーク mos_sawa 2010年7月1日 15:02
    2010年6月24日 5:57

すべての返信

  • 私が調べた限り無理そうですね・・・

    代替案として、以下のようにBULK INSERTを使用するか、

    SQL Server 2008 TSVファイルからのデータのインポートでnull値を保持できない
    http://okyuu.com/ja/question/6860

    もしくは、ウイザードの最後でパッケージとして保存し、 SQL Server Business Inteligence Development Studio(BIDS)でそれを編集して実行すると可能なようです。

    Sql Server 2005 Import Wizard - keep NULLS - sqlserver-dts
    http://dbaspot.com/forums/sqlserver-dts/338931-sql-server-2005-import-wizard-keep-nulls.html

    #環境が手元に無いため確認できません。すみません。


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://blogs.wankuma.com/trapemiya/
    • 回答の候補に設定 山本春海 2010年6月29日 7:21
    • 回答としてマーク mos_sawa 2010年7月1日 15:02
    2010年6月24日 5:57
  • trapemiya 様

      この度は、この様な訳の分からない質問に丁寧にお答えいただき、本当にありがとうございました。お返事が遅れてしまい、申し訳ありません。

     私事ですが、以前、勤め先の業務の都合でMicrosoft Access を使用しておりました。

     インポートからアクションクエリまで、ありとあらゆる事でウィザードに頼り切っていたため、今回のSQL serverでも、ウィザードで何とかしたいとばかり考えてしまいました。

     Business Inteligence Development Studio、開発ツールという事で敬遠しておりましたが、この上は入門書を買い求めて、腹をくくって一から勉強したいと思います。

     この度は本当にありがとうございました。

    2010年7月1日 15:22