一括エクスポートまたは一括インポートのデータの準備
更新 : 2007 年 9 月 15 日
ここでは、一括エクスポート操作の計画に関する考慮事項と一括インポート操作の要件について説明します。
メモ : |
---|
一括インポート用にデータ ファイルの書式を設定する方法が不明確な場合は、bcp ユーティリティを使用して、データをテーブルからデータ ファイルにエクスポートできます。このファイル内の各データ フィールドの書式設定では、データを対応するテーブル列に一括インポートする際に必要な書式設定が示されています。データ ファイルのフィールドに同じデータの書式設定を使用してください。 |
一括エクスポートのデータ ファイル形式に関する注意点
bcp コマンドを使用して一括エクスポート操作を実行する前に、次のことを考慮してください。
- データをファイルにエクスポートする際、bcp コマンドにより、指定したファイル名のデータ ファイルが自動的に作成されます。指定の名前が既に使用されている場合、そのファイルの既存のコンテンツは、そのデータファイルに一括コピーするデータで上書きされます。
- テーブルまたはビューからデータを一括エクスポートする場合、一括コピーするテーブルまたはビューに SELECT 権限が必要になります。
- Microsoft SQL Server では、データの取得に並列スキャンを使用できます。そのため、SQL Server インスタンスから一括エクスポートされるテーブル行は、通常、エクスポート先のデータ ファイルで特定の順序で表示されるとは保証されません。一括エクスポートされたテーブル行がデータ ファイル内に特定の順序で表示されるようにするには、queryout オプションを使用してクエリから一括エクスポートを行い、ORDER BY 句を指定します。詳細については、「クエリからデータ ファイルへのデータのエクスポート」を参照してください。
一括インポートのデータ ファイル形式の要件
データ ファイルからデータをインポートするには、データ ファイルは以下の基本要件を満たしている必要があります。
- データは、行と列の形式になっている必要があります。
メモ : |
---|
一括インポート処理では、列がスキップされたり順番が再変更されることがあるため、データ ファイルの構造は、SQL Server テーブルの構造と同一である必要はありません。 |
- データ ファイルのデータは、文字列形式やネイティブ形式など、サポートされている形式である必要があります。
- データは、Unicode を含む文字列形式またはネイティブ バイナリ形式にすることができます。
- bcp コマンド、BULK INSERT ステートメント、または INSERT ...SELECT * FROM OPENROWSET(BULK...) ステートメントを使用してデータをインポートするには、インポート先のテーブルが既に存在している必要があります。
- データ ファイルの各フィールドは、インポート先テーブルの対応する列と互換性がある必要があります。たとえば、int フィールドを datetime 列に読み込むことはできません。詳細については、「ネイティブ形式、文字形式、または Unicode 形式の使用」および「bcp を使用した互換性のためのデータ形式の指定」を参照してください。
メモ : ファイル全体をインポートするのではなく、データ ファイルからインポートする行のサブセットを指定するには、bcp コマンドと -F first_row スイッチまたは -L last_row スイッチ、あるいは両方のスイッチを組み合わせて使用します。詳細については、「bcp ユーティリティ」を参照してください。 - 固定長フィールドまたは固定幅フィールドを含むデータ ファイルからデータをインポートするには、フォーマット ファイルを使用する必要があります。詳細については、「XML フォーマット ファイルのサンプル」を参照してください。
- コンマ区切り値 (CSV) ファイルをデータ ファイルとして使用して、データを SQL Server に一括インポートできる場合があります。CSV ファイルのフィールド ターミネータはコンマにする必要はありません。CSV ファイルを一括インポート用のデータ ファイルとして使用できるようにするには、次の制限に従う必要があります。
- データ フィールドにはフィールド ターミネータを含まない。
- データ フィールドの値は、引用符 ("") ですべて囲むか、まったく囲まないかのどちらかにする。
Microsoft FoxPro や Visual FoxPro テーブル (.dbf) ファイル、または Microsoft Excel ワークシート (.xls) ファイルなどからデータをインポートするには、データを CSV ファイルに変換します。このファイルの拡張子は通常 .csv です。そうすると、SQL Server 一括インポート操作で .csv ファイルをデータ ファイルとして使用できます。
また、データ ファイルのデータをテーブルに一括インポートするには、以下の要件も満たしている必要があります。
- ユーザーは、インポート先のテーブルに対する INSERT 権限および SELECT 権限を持っている必要があります。また、制約を無効にするなどデータ定義言語 (DDL) 操作が必要なオプションを使用する場合は、ALTER TABLE 権限も必要になります。
- BULK INSERT または INSERT ...SELECT * FROM OPENROWSET(BULK...) を使用してデータを一括インポートする際は、SQL Server プロセスのセキュリティ プロファイル (ユーザーが SQL Server で提供されたログインを使用してログインしている場合) またはデリゲートされたセキュリティに基づいて使用されている Microsoft Windows ログインから、このデータ ファイルにアクセスし、読み取り操作ができる状態でなければなりません。また、ファイルを読み取るには、ユーザーに ADMINISTER BULK OPERATIONS 権限が必要です。
メモ : |
---|
パーティション ビューへのデータの一括インポートはサポートされません。パーティション ビューにデータを一括インポートするとエラーになります。 |
参照
概念
文字形式を使用したデータのインポートまたはエクスポート
ネイティブ形式を使用したデータのインポートまたはエクスポート
XML フォーマット ファイルについて
その他の技術情報
bcp ユーティリティ
BULK INSERT (Transact-SQL)
データ型 (Transact-SQL)
ExportData Method
ImportData Method
ヘルプおよび情報
変更履歴
リリース | 履歴 |
---|---|
2007 年 9 月 15 日 |
|
2006 年 7 月 17 日 |
|
2006 年 4 月 14 日 |
|