次の方法で共有


SQL のフラット ファイルのインポート ウィザード

適用対象: SQL Server Azure SQL データベース Azure SQL Managed Instance

インポートおよびエクスポート ウィザードに関連するコンテンツについては、「SQL Server インポートおよびエクスポート ウィザードを使用してデータをインポートおよびエクスポートする」を参照してください。

フラット ファイルのインポート ウィザードを使用すると、フラット ファイル (.csv、.txt) からデータベース内の新しいテーブルにデータを簡単にコピーできます。 フラット ファイルのインポート ウィザードでは、コンマ区切りと固定幅形式のファイルの両方がサポートされています。 この概要では、このウィザードを使用する理由、このウィザードを見つける方法、実行が簡単な例について説明します。

このウィザードを使用する理由

このウィザードは、Program Synthesis using Examples (PROSE) と呼ばれるインテリジェント フレームワークを利用して現在のインポート操作を改善するために作成されました。 特殊なドメインの知識を持っていないユーザーの場合、データのインポートは複雑で、間違いやすく、面倒な作業になりがちです。 このウィザードでは、インポート プロセスが入力ファイルと一意のテーブル名を選択するだけの簡単な操作に整理され、後の処理は PROSE フレームワークが行います。

PROSE は、入力ファイルのデータ パターンを分析し、列の名前、型、区切り記号などを推定します。 このフレームワークはファイルの構造を学習し、ユーザーの代わりにすべての面倒な作業を実行します。

前提条件

この機能は、SQL Server Management Studio (SSMS) バージョン 17.3 以降で使用できます。 最新バージョンを使用していることを確認します。 最新バージョンはこちらで入手できます。

作業の開始

フラット ファイルのインポート ウィザードにアクセスするには、次の手順を実行します。

  1. SQL Server Management Studio を開きます。
  2. SQL Server Database Engine または localhost のインスタンスに接続します。
  3. [データベース] を展開し、データベース (次の例では test) を右クリックし、[タスク] をポイントして、[データのインポート] の上の [フラット ファイルのインポート] を選択します。

[フラット ファイルのインポート] メニューのスクリーンショット。

ウィザードの各機能の詳細については、次のチュートリアルを参照してください。

チュートリアル

このチュートリアルには、任意のフラット ファイルを使うことができます。 自分のファイルを使用しない場合は、このチュートリアルでは次の Excel の CSV 形式のファイルを使用します。自由にコピーしてください。 この CSV を使用する場合は、example.csv という名前を付けて、デスクトップなどの簡単な場所に csv ファイルとして保存してください。

Excel のスクリーンショット。

概要:

  1. ウィザードにアクセスする
  2. 入力ファイルを指定する
  3. データをプレビューする
  4. 列を変更する
  5. まとめ
  6. 結果

手順 1: ウィザードの [はじめに] ページにアクセスする

こちらの手順に従ってウィザードにアクセスします。

ウィザードの最初のページは [ようこそ] ページです。 このページを再表示したくない場合は、[次回からこの開始ページを表示しない] を選択して構いません。

フラット ファイルのインポート ウィザードの [概要] メニューのスクリーンショット。

手順 2: 入力ファイルを指定する

[参照] を選択して入力ファイルを選択します。 ウィザードの既定で、.csv ファイルと .txt ファイルが検索されます。 PROSE によって、ファイル拡張子に関係なく、ファイルがコンマ区切りであるか固定幅形式であるかが検出されます。

新しいテーブル名は一意にする必要があります。一意でない場合、ウィザードを次に進めることはできません。

フラット ファイルのインポート ウィザードの [入力ファイルの指定] メニューのスクリーンショット。

手順 3: データをプレビューする

プレビューが生成され、最初の 50 行を確認できます。 問題がある場合は [キャンセル] を選択します。問題がない場合は、次のページに進みます。

フラット ファイルのインポート ウィザードの [データのプレビュー] メニューのスクリーンショット。

手順 4: 列を変更する

ウィザードでは、正しい列名やデータ型などと認識されるものが特定されます。ここで、フィールドが正しくない場合は編集できます (たとえば、データ型を int ではなく float にするなどです)。

空の値が検出された列では、[Null を許容] がチェックされています。 ただし、null が想定される列で [Null を許容] がチェックされていない場合は、ここで 1 つの列またはすべての列で null を許容するようにテーブル定義を更新できます。

準備ができたら次に進みます。

フラット ファイルのインポート ウィザードの [列の変更] メニューのスクリーンショット。

手順 5: 概要

これは、現在の構成が表示される概要ページです。 問題がある場合は、前のセクションに戻ることができます。 問題がない場合は、[完了] を選択すると、インポート プロセスが開始されます。

フラット ファイルのインポート ウィザードの [概要] メニューのスクリーンショット。

手順 6: 結果

このページには、インポートが成功したかどうかが表示されます。 緑のチェック マークが表示された場合は成功です。それ以外の場合は、構成や入力ファイルにエラーがないか確認する必要があります。

フラット ファイルのインポート ウィザードの [結果] メニューのスクリーンショット。

トラブルシューティング

フラット ファイルのインポート ウィザードでは、最初の 200 行に基づいてデータ型が検出されます。 それ以降のフラット ファイルのデータが、自動検出されたデータ型に準拠していないシナリオでは、インポート中にエラーが発生します。 次のようなエラー メッセージが表示されます。

Error inserting data into table. (Microsoft.SqlServer.Prose.Import)
The given value of type String from the data source cannot be converted to type nvarchar of the specified target column. (System.Data)
String or binary data would be truncated. (System.Data)

このエラーを軽減する方法:

  • nvarchar 列の長さなど、列を変更する手順でデータ型のサイズを拡張すると、フラット ファイルの残りの部分でのデータの変化が補正される場合があります。
  • 列を変更する手順でエラーの報告を有効にすると (特に、小さな数値で)、フラット ファイル内のどの行に、選択したデータ型に適合しないデータが含まれているかがわかります。 たとえば、2 番目の行でエラーが発生したフラット ファイルでは、範囲を 1 にしたエラー報告でインポートを実行すると、具体的なエラー メッセージが表示されます。 その場所でファイルを直接調べると、識別された行のデータに基づいて、さらに対象を絞ってデータ型を変更できます。

フラット ファイルのインポート ウィザードが報告する結果のエラーのスクリーンショット。

Error inserting data into table occurred while inserting rows 1 - 2. (Microsoft.SqlServer.Prose.Import)
The given value of type String from the data source cannot be converted to type float of the specified target column. (System.Data)
Failed to convert parameter value from a String to a Double. (System.Data)

現在、インポーターはシステムのアクティブなコード ページに基づいたエンコードを使用します。 ほとんどのマシンでは、このディフォルトが ANSI に設定されています。

ウィザードの詳細については、以下を参照してください。