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

質問
-
SQL Server 2005 で、CSVファイルを SQL Server Management Studio のインポートウィザードでインポートしようとしております。
CSVファイルには、例えば「販売個数」という数値型でインポートしたい列に、NULL値のデータが含まれています。
インポート先のテーブルは、既にデータが無いひな形だけの状態でSQL Server内に作ってあります。
CSVファイルの「販売個数」列の値は、インポート先のテーブルの数値型の列である「販売個数」にインポートする必要があります。
ウィザードを使って フラットファイルをインポートする手順で、「詳細設定」からこの「販売個数」のデータ型を int型に指定してインポートしました。
すると、CSVファイルではNULL値だったデータに、すべてゼロが入ってしまいました。
それではと、ウィザードの「詳細設定」で特段データ型の指定をしないまま(文字列型として認識されました)インポートしようとしたら、途中でエラーが発生してしまい、インポートできませんでした。
あくまでもCSVファイル内のデータがNULL値であれば、NULL値のまま、インポート先のテーブルの数値型の列にインポートしたいのですが、インポートウィザードを使う方法で、何か良い方法は無いものでしょうか。
何卒お知恵をお借りしたく、よろしくお願いいたします。
回答
-
私が調べた限り無理そうですね・・・
代替案として、以下のように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/
すべての返信
-
私が調べた限り無理そうですね・・・
代替案として、以下のように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/ -
trapemiya 様
この度は、この様な訳の分からない質問に丁寧にお答えいただき、本当にありがとうございました。お返事が遅れてしまい、申し訳ありません。
私事ですが、以前、勤め先の業務の都合でMicrosoft Access を使用しておりました。
インポートからアクションクエリまで、ありとあらゆる事でウィザードに頼り切っていたため、今回のSQL serverでも、ウィザードで何とかしたいとばかり考えてしまいました。
Business Inteligence Development Studio、開発ツールという事で敬遠しておりましたが、この上は入門書を買い求めて、腹をくくって一から勉強したいと思います。
この度は本当にありがとうございました。