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 以降で使用できます。 最新バージョンを使用していることを確認します。 最新バージョンはこちらで入手できます。
作業の開始
フラット ファイルのインポート ウィザードにアクセスするには、次の手順を実行します。
- SQL Server Management Studio を開きます。
- SQL Server Database Engine または localhost のインスタンスに接続します。
- [データベース] を展開し、データベース (次の例では test) を右クリックし、[タスク] をポイントして、[データのインポート] の上の [フラット ファイルのインポート] を選択します。
ウィザードの各機能の詳細については、次のチュートリアルを参照してください。
チュートリアル
このチュートリアルには、任意のフラット ファイルを使うことができます。 自分のファイルを使用しない場合は、このチュートリアルでは次の Excel の CSV 形式のファイルを使用します。自由にコピーしてください。 この CSV を使用する場合は、example.csv という名前を付けて、デスクトップなどの簡単な場所に csv ファイルとして保存してください。
概要:
手順 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 に設定されています。
関連するコンテンツ
ウィザードの詳細については、以下を参照してください。
- その他のリソースのインポートに関する詳細。 複数のフラット ファイルをインポートする場合は、「SQL Server インポートおよびエクスポート ウィザードを使用してデータをインポートおよびエクスポートする」を参照してください。
- フラット ファイル ソースへの接続に関する詳細。 フラット ファイル ソースへの接続の詳細については、「フラット ファイル データ ソースに接続する (SQL Server インポートおよびエクスポート ウィザード)」を参照してください。
- PROSE に関する詳細を確認します。 このウィザードに使用されるインテリジェント フレームワークの概要については、「PROSE SDK」を参照してください。