XML 以外のフォーマット ファイル (SQL Server)

SQL Server 2012 では、一括エクスポートおよび一括インポート用に 2 種類のフォーマット ファイルがサポートされています。XML 以外のフォーマット ファイルと XML フォーマット ファイルです。

このトピックの内容

  • 利点

  • XML 以外のフォーマット ファイルの構造

  • XML 形式以外のフォーマット ファイルの例

  • 関連タスク

XML 以外のフォーマット ファイルの利点

  • bcp コマンドの format オプションを指定することで、XML 以外のフォーマット ファイルを自動的に作成できます。

  • bcp コマンドで既存のフォーマット ファイルを指定すると、フォーマット ファイルに記録された値がコマンドに使用されます。ファイルの保存形式、プレフィックス長、フィールド長、フィールド ターミネータの入力を求められることはありません。

  • 文字データやネイティブ データなど、特定のデータ型のフォーマット ファイルを作成できます。

    各データ フィールドに対話的に指定された属性を含む XML 以外のフォーマット ファイルを作成できます。 詳細については、「bcp を使用した互換性のためのデータ形式の指定 (SQL Server)」を参照してください。

注意

XML フォーマット ファイルには、XML 以外のフォーマット ファイルに比べていくつかの利点があります。 詳細については、「XML フォーマット ファイル (SQL Server)」を参照してください。

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

XML 以外のフォーマット ファイルの構造

XML 以外のフォーマット ファイルは、特定の構造を持つテキスト ファイルです。 XML 以外のフォーマット ファイルには、各テーブル列のファイル保存形式、プレフィックス長、フィールド長、およびフィールド ターミネータに関する情報が含まれています。

次の図は、XML 以外のフォーマット ファイルのサンプルの、フォーマット ファイル フィールドを示しています。

非 XML 形式ファイルのフィールドの指定

"バージョン" フィールドおよび "列の数" フィールドは XML 以外のフォーマット ファイルごとに 1 つだけ存在します。 次の表で、各フィールドの意味を説明します。

フォーマット ファイル フィールド

説明

バージョン

bcp ユーティリティのバージョン番号です。次の値があります。

9.0 = SQL Server 2005 

10.0 = SQL Server 2008

11.0 = SQL Server 2012

このバージョン番号は Transact-SQL ではなく bcp だけで認識されます。

注意

フォーマット ファイルの読み取りに使用される bcp ユーティリティ (Bcp.exe) のバージョンは、フォーマット ファイルの作成に使用されたバージョン、またはそれ以降のバージョンである必要があります。 たとえば、SQL Server 2008 bcp では、SQL Server 2005 bcp によって生成されるバージョン 9.0 のフォーマット ファイルを読み取ることができますが、SQL Server 2005 bcp では、SQL Server 2008 bcp によって生成されるバージョン 10.0 のフォーマット ファイルを読み取ることができません。

列の数

データ ファイルのフィールドの数。 この数は、すべての行で同じである必要があります。

他のフォーマット ファイル フィールドには、一括インポートまたは一括エクスポートされるデータ フィールドが記述されます。 各データ フィールドは、フォーマット ファイル内に個別の行を必要とします。 フォーマット ファイルの各行には、次の表で示すフォーマット ファイル フィールドの値が含まれます。

フォーマット ファイル フィールド

説明

ホスト ファイル フィールドの順序

データ ファイル内の各フィールドの位置を示す番号。 行の最初のフィールドは 1 になり、それ以降のフィールドにも順番に番号が付けられます。

ホスト ファイル データ型

データ ファイルの特定のフィールドに格納されているデータ型。 ASCII データ ファイルでは、SQLCHAR を使用します。ネイティブ形式のデータ ファイルでは、既定のデータ型を使用します。 詳細については、「bcp を使用したファイル ストレージ型の指定 (SQL Server)」を参照してください。

プレフィックス長

フィールドのプレフィックス長文字の数。 有効なプレフィックス長は、0、1、2、4、および 8 です。 プレフィックス長を指定しない場合は 0 を設定します。 フィールドに NULL データ値が含まれる場合には、プレフィックス長を指定する必要があります。 詳細については、「bcp を使用したデータ ファイルのプレフィックス長の指定 (SQL Server)」を参照してください。

ホスト ファイルのデータ長

データ ファイルの特定フィールドに格納されるデータ型の最大バイト数。

区切り形式のテキスト ファイル用に XML 以外のフォーマット ファイルを作成する場合、各データ フィールドのホスト ファイルのデータ長に 0 を指定できます。 プレフィックス長が 0 で、ターミネータが含まれている、区切り形式のテキスト ファイルをインポートする場合、フィールドで使用されるストレージ領域のサイズはデータにターミネータを加えた長さであるため、フィールド長の値は無視されます。

詳細については、「bcp を使用したフィールド長の指定 (SQL Server)」を参照してください。

ターミネータ

データ ファイルのフィールドを分割する区切り文字。 一般的なターミネータは、コンマ (,)、タブ (\t)、および行末 (\r\n) です。 詳細については、「フィールド ターミネータと行ターミネータの指定 (SQL Server)」を参照してください。

サーバーの列の順序

SQL Server テーブルで列が表示される順序。 たとえば、データ ファイルの 4 番目のフィールドが、SQL Server テーブルの 6 番目の列にマップされる場合、4 番目のフィールドのサーバーの列の順序は 6 になります。

テーブル内の列がデータ ファイルからデータを受け取らないようにするには、サーバーの列の順序の値に 0 を設定します。

サーバーの列名

SQL Server テーブルからコピーされる列の名前。 フィールドの実際の名前は必要ありませんが、フォーマット ファイルのフィールドは空白にはできません。

列の照合順序

データ ファイル内の文字データや Unicode データを格納するときに使用される照合順序。

注意

フォーマット ファイルを変更して、フィールドの数や順序がテーブル列とは異なるデータ ファイルから一括インポートできます。 詳細については、このトピックの「関連タスク」の一覧を参照してください。

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

XML 形式以外のフォーマット ファイルの例

次の例は、以前に作成された XML 以外のフォーマット ファイル (myDepartmentIdentical-f-c.fmt) を示しています。 このファイルには、AdventureWorks サンプル データベースの HumanResources.Department テーブルの各列の文字データ フィールドが記述されています。

生成されるフォーマット ファイル myDepartmentIdentical-f-c.fmt には、次の情報が含まれます。

11.0
4
1       SQLCHAR       0       7       "\t"     1     DepartmentID     ""
2       SQLCHAR       0       100     "\t"     2     Name             SQL_Latin1_General_CP1_CI_AS
3       SQLCHAR       0       100     "\t"     3     GroupName        SQL_Latin1_General_CP1_CI_AS
4       SQLCHAR       0       24      "\r\n"   4     ModifiedDate     ""
注意

この XML 以外のフォーマット ファイルのサンプルに関連するフォーマット ファイル フィールドを示す図については、このトピックの「XML 以外のフォーマット ファイルの構造」を参照してください。

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

関連タスク

[先頭に戻る]

関連項目

参照

bcp ユーティリティ

概念

フォーマット ファイルの作成 (SQL Server)

XML フォーマット ファイル (SQL Server)

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