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

適用対象: はいSQL Server (サポートされているすべてのバージョン) はいAzure SQL データベース はいAzure SQL Managed Instance はいAzure Synapse Analytics はいParallel Data Warehouse

SQL Server では、テーブルからのデータの一括エクスポート ( 一括データのエクスポート SQL Server )、および SQL Server テーブルまたはパーティション分割されていないビューへの一括データのインポートがサポートされています。

  • 一括エクスポート とは、 SQL Server テーブルから特定のデータ ファイルにデータをコピーすることです。
  • 一括インポート は、データ ファイルから SQL Server テーブルにデータを読み込むことを指します。 たとえば、データを Microsoft Excel アプリケーションから特定のデータ ファイルにエクスポートした後、そのデータを SQL Server テーブルに一括インポートできます。

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

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

Method 説明 データのインポート データのエクスポート
bcp ユーティリティ データの一括エクスポートと一括インポート、およびフォーマット ファイルの生成を行うコマンド ライン ユーティリティ (Bcp.exe)。 はい はい
BULK INSERT ステートメント データ ファイルのデータをデータベース テーブルまたはパーティション分割されていないビューに直接インポートする Transact-SQL ステートメント。 はい いいえ
INSERT ...SELECT * FROM OPENROWSET(BULK...) ステートメント INSERT ステートメントでデータを選択するために OPENROWSET(BULK...) 関数を指定することによって、OPENROWSET 一括行セット プロバイダーを使用してデータを Transact-SQL テーブルに一括インポートする SQL Server ステートメント。 はい いいえ
SQL Server インポートおよびエクスポート ウィザード このウィザードでは、データセット、スプレッドシート、テキスト ファイルなど、さまざまな一般的なデータ形式の間でデータをインポートまたはエクスポートする簡単なパッケージが作成されます。 はい はい

重要

SQL Server へのデータの一括インポートのデータ ファイルとしてコンマ区切り値 (CSV) ファイルを使用する場合の規則については、「一括エクスポートまたは一括インポートのデータの準備 (SQL Server)」を参照してください。

注意

Azure Synapse Analytics では、区切りファイルをインポートおよびエクスポートするために、bcp ユーティリティのみがサポートされています。

フォーマット ファイル

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

重要

BCP を使用して、Azure Blob Storage と Azure SQL Database の間でデータをインポートしたりエクスポートしたりすることはできません。 Azure Blob Storage に対してインポートまたはエクスポートするには、BULK INSERT または OPENROWSET を使用します。

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

SQL Server では、次の 2 種類のフォーマット ファイルがサポートされます:XML フォーマット ファイルと XML 以外のフォーマット ファイル。

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

注意

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

関連トピック
一括エクスポートまたは一括インポートのデータの準備 (SQL Server)
一括インポートまたは一括エクスポートのデータ形式 (SQL Server)
 ● ネイティブ形式を使用したデータのインポートまたはエクスポート (SQL Server)
 ● 文字形式を使用したデータのインポートまたはエクスポート (SQL Server)
 ● Unicode ネイティブ形式を使用したデータのインポートまたはエクスポート (SQL Server)
 ● Unicode 文字形式を使用したデータのインポートまたはエクスポート (SQL Server)
 ● 以前のバージョンの SQL Server からのネイティブ形式データおよび文字形式データのインポート
bcp を使用した互換性のためのデータ形式の指定 (SQL Server)
 ● bcp を使用したファイル ストレージ型の指定 (SQL Server)
 ● bcp を使用したデータ ファイルのプレフィックス長の指定 (SQL Server)
 ● bcp を使用したフィールド長の指定 (SQL Server)
 ● フィールド ターミネータと行ターミネータの指定 (SQL Server)
一括インポート中の NULL の保持または既定値の使用 (SQL Server)
データの一括インポート時の ID 値の保持 (SQL Server)
データのインポートまたはエクスポート用のフォーマット ファイル (SQL Server)
 ● フォーマット ファイルの作成 (SQL Server)
 ● データの一括インポートでのフォーマット ファイルの使用 (SQL Server)
 ● フォーマット ファイルを使用したテーブル列のスキップ (SQL Server)
 ● フォーマット ファイルを使用したデータ フィールドのスキップ (SQL Server)
 ● フォーマット ファイルを使用したテーブル列とデータ ファイル フィールドのマッピング (SQL Server)

詳細情報