データの一括インポートと一括エクスポート (SQL Server)

SQL Server では、SQL Server テーブルからのデータの一括エクスポート (一括データのエクスポート)、および SQL Server テーブルまたはパーティション分割されていないビューへの一括データのインポートがサポートされています。 一括インポートと一括エクスポートは、SQL Server と異種データ ソースとの間で効率的にデータを転送するための重要な機能です。 一括エクスポートとは、SQL Server テーブルから特定のデータ ファイルにデータをコピーすることです。 一括インポートは、データ ファイルから SQL Server テーブルにデータを読み込むことを指します。 たとえば、データを Microsoft Excel アプリケーションから特定のデータ ファイルにエクスポートした後、そのデータを SQL Server テーブルに一括インポートできます。

このトピックの内容

  • 一括インポート操作と一括エクスポート操作の概要

  • 関連タスク

一括インポートと一括エクスポートの概要

このセクションでは、データを一括でインポートおよびエクスポートするために使用できるさまざまな方法を示し、それらを簡単に比較します。 また、フォーマット ファイルについても説明します。

このトピックの内容

  • データの一括インポートと一括エクスポートの方法

  • フォーマット ファイル

データの一括インポートと一括エクスポートの方法

SQL Server では、SQL Server テーブルからのデータの一括エクスポート、および SQL Server テーブルまたはパーティション分割されていないビューへのデータの一括インポートがサポートされています。 使用できる基本的な方法を次に示します。

メソッド

説明

データのインポート

データのエクスポート

bcp ユーティリティ

データの一括エクスポートと一括インポート、およびフォーマット ファイルの生成を行うコマンド ライン ユーティリティ (Bcp.exe)。

はい

はい

BULK INSERT ステートメント

データ ファイルのデータをデータベース テーブルまたはパーティション分割されていないビューに直接インポートする Transact-SQL ステートメント。

はい

いいえ

INSERT ... SELECT * FROM OPENROWSET(BULK...) ステートメント

INSERT ステートメントでデータを選択するために OPENROWSET(BULK...) 関数を指定することによって、OPENROWSET 一括行セット プロバイダーを使用してデータを SQL Server テーブルに一括インポートする Transact-SQL ステートメント。 

はい

いいえ

重要な注意事項重要

SQL Server の一括インポート操作では、コンマ区切り (CSV) ファイルがサポートされていません。 ただし、場合によっては、SQL Server に対してデータを一括インポートする際、CSV ファイルをデータ ファイルとして使用できます。 CSV ファイルのフィールド ターミネータは必ずしもコンマである必要はありません。 詳細については、「一括エクスポートまたは一括インポートのデータの準備 (SQL Server)」を参照してください。

[トップに戻る] リンクで使用される矢印アイコン[先頭に戻る]

フォーマット ファイル

bcp ユーティリティ、BULK INSERT、および INSERT ... SELECT * FROM OPENROWSET(BULK...) では、フォーマット ファイルという特殊なファイルを使用して、データ ファイル内のフィールドごとにフォーマット情報を格納することができます。 また、フォーマット ファイルには、対応する SQL Server テーブルに関する情報が含まれる場合もあります。 フォーマット ファイルは、SQL Server のインスタンスからデータを一括エクスポートしたり、このインスタンスにデータを一括インポートしたりするのに必要なすべてのフォーマット情報を指定するために使用できます。

フォーマット ファイルを使用すると、インポートの際にデータ ファイルの形式に従ってデータを解釈したり、エクスポートの際にデータ ファイル内のデータに形式を適用する処理を柔軟に行えるようになります。 これにより、SQL Server または外部アプリケーションの特定の必要性に応じてデータの解釈や再フォーマットを行うことだけを目的としたプログラムを作成する必要がなくなります。 たとえば、コンマ区切り値が必要なアプリケーションに読み込まれるデータを一括インポートする場合、フォーマット ファイルを使用すると、エクスポートされたデータにフィールド ターミネータとしてコンマを挿入できます。

SQL Server 2012 では、XML フォーマット ファイルと XML 以外のフォーマット ファイルの 2 種類がサポートされます。 XML 以外のフォーマット ファイルは、SQL Server の以前のバージョンでもサポートされていますが、XML フォーマット ファイルは SQL Server 2005 で新たにサポートされました。

フォーマット ファイルを生成できるツールは、bcp ユーティリティだけです。 詳細については、「フォーマット ファイルの作成 (SQL Server)」を参照してください。 フォーマット ファイルの詳細については、「データのインポートまたはエクスポート用のフォーマット ファイル (SQL Server)」を参照してください。

注意

一括エクスポート操作または一括インポート操作でフォーマット ファイルが正しく提供されなかった場合に備えて、ユーザーはコマンド ラインで既定の形式を上書きすることもできます。

[トップに戻る] リンクで使用される矢印アイコン[先頭に戻る]

関連タスク

フォーマット ファイルを作成するには

一括インポートまたは一括エクスポートのデータ形式を使用するには

bcp を使用した互換性のためのデータ形式を指定するには

  1. フィールド ターミネータと行ターミネータの指定 (SQL Server)

  2. bcp を使用したデータ ファイルのプレフィックス長の指定 (SQL Server)

  3. bcp を使用したファイル ストレージ型の指定 (SQL Server)

[トップに戻る] リンクで使用される矢印アイコン[先頭に戻る]

関連項目

参照

XML データの一括読み込みの実行 (SQLXML 4.0)

bcp ユーティリティ

BULK INSERT (Transact-SQL)

OPENROWSET (Transact-SQL)

概念

一括インポートで最小ログ記録を行うための前提条件

データのインポートまたはエクスポート用のフォーマット ファイル (SQL Server)

XML ドキュメントの一括インポートと一括エクスポートの例 (SQL Server)

SQL Server Integration Services

他のサーバーへのデータベースのコピー

一括コピー操作の実行

データのインポートまたはエクスポート用のフォーマット ファイル (SQL Server)