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

適用対象:yesSQL Server Analytics Platform System (PDW) YesYesAzure SQL Database Azure SQL Managed Instance yesyesAzure Synapse Analytics (すべてのサポートされているバージョン)

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 ステートメント データ ファイルから直接SQLテーブルまたはパーティション分割されていないビューにデータをインポートする Transact-SQL ステートメント。 はい いいえ
INSERT ...SELECT * FROM OPENROWSET(BULK...) ステートメント OPENROWSET(BULK...) 関数を指定して INSERT ステートメント内のデータを選択することで、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

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

関連トピック
一括エクスポートまたは一括インポートのデータの準備 (SQL Server)
一括インポートまたは一括エクスポートのデータ形式 (SQL Server)
 • ネイティブ形式を使用してデータをインポートまたはエクスポートする (SQL Server)
 • 文字形式を使用してデータをインポートまたはエクスポートする (SQL Server)
 • Unicode ネイティブ形式を使用してデータをインポートまたはエクスポートする (SQL Server)
 • Unicode 文字形式を使用してデータをインポートまたはエクスポートする (SQL Server)
 • 以前のバージョンのデータからネイティブおよび文字形式のデータをインポートSQL Server
bcp を使用した互換性のためのデータ形式の指定 (SQL Server)
 • bcp をStorageしてファイルの種類を指定する (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)
 • フォーマット ファイルを使用してテーブル列をマップし、Data-Fileフィールドにマップする (SQL Server)

詳細情報