データの一括インポートと一括エクスポート (SQL Server)
適用対象: SQL Server Azure SQL データベース Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)
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 一括行セット プロバイダーを使用してデータを SQL Server テーブルに一括インポートする Transact-SQL ステートメント。 | はい | いいえ |
SQL Server インポートおよびエクスポート ウィザード | このウィザードでは、データセット、スプレッドシート、テキスト ファイルなど、さまざまな一般的なデータ形式の間でデータをインポートまたはエクスポートする簡単なパッケージが作成されます。 | はい | 可 |
重要
SQL Server へのデータの一括インポートのデータ ファイルとしてコンマ区切り値 (CSV) ファイルを使用する場合の規則については、「一括エクスポートまたは一括インポートのデータの準備 (SQL Server)」を参照してください。
Note
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 では、XML フォーマット ファイルと XML 以外のフォーマット ファイルの 2 種類がサポートされます。
フォーマット ファイルを生成できるツールは、 bcp ユーティリティ だけです。 詳細については、「フォーマット ファイルの作成 (SQL Server)」を参照してください。 フォーマット ファイルの使用方法の詳細は、「データのインポートまたはエクスポート用のフォーマット ファイル (SQL Server)」を参照してください。
Note
一括エクスポート操作または一括インポート操作でフォーマット ファイルが正しく提供されなかった場合に備えて、ユーザーはコマンド ラインで既定の形式をオーバーライドすることもできます。