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

SQL Server 2017SQL Server 2017では、一括エクスポートおよび一括インポート用に 2 種類のフォーマット ファイルがサポートされています。 XML 以外のフォーマット ファイルXML フォーマット ファイルです。In SQL Server 2017SQL Server 2017, two types of format files are supported for bulk exporting and importing: non-XML format files and XML format files.

このトピックの内容In this Topic:

XML 以外のフォーマット ファイルの利点 Benefits of Non-XML Format Files

  • bcp コマンドの format オプションを指定することで、XML 以外のフォーマット ファイルを自動的に作成できます。You can create a non-XML format file automatically by specifying the format option in a bcp command.

  • bcp コマンドで既存のフォーマット ファイルを指定すると、フォーマット ファイルに記録された値がコマンドに使用されます。ファイルの保存形式、プレフィックス長、フィールド長、フィールド ターミネータの入力を求められることはありません。When you specify an existing format file in a bcp command, the command uses the values that are recorded in the format file and does not prompt you for the file storage type, prefix length, field length, or field terminator.

  • 文字データやネイティブ データなど、特定のデータ型のフォーマット ファイルを作成できます。You can create a format file for a particular data type such as character data or native data.

    各データ フィールドに対話的に指定された属性を含む XML 以外のフォーマット ファイルを作成できます。You can create a non-XML format file that contains interactively specified attributes for each data field. 詳細については、「bcp を使用した互換性のためのデータ形式の指定 (SQL Server)」を参照してください。For more information, see Specify Data Formats for Compatibility when Using bcp (SQL Server).


XML フォーマット ファイルには、XML 以外のフォーマット ファイルに比べていくつかの利点があります。XML format files offer several advantages over non-XML format files. 詳細については、「 XML フォーマット ファイル (SQL Server)です。For more information, see XML Format Files (SQL Server).

XML 以外のフォーマット ファイルの構造 Structure of Non-XML Format Files

XML 以外のフォーマット ファイルは、特定の構造を持つテキスト ファイルです。A non-XML format file is a text file that has a specific structure. XML 以外のフォーマット ファイルには、各テーブル列のファイル保存形式、プレフィックス長、フィールド長、およびフィールド ターミネータに関する情報が含まれています。The non-XML format file contains information about the file storage type, prefix length, field length, and field terminator of every table column.

次の図は、XML 以外のフォーマット ファイルのサンプルの、フォーマット ファイル フィールドを示しています。The following illustration illustrates the format-file fields for a sample non-XML format file.

XML 以外の形式ファイルのフィールドの指定Identifies the fields of a non-XML format file

" バージョン " フィールドおよび " 列の数 " フィールドは XML 以外のフォーマット ファイルごとに 1 つだけ存在します。The Version and Number of columns fields occur one time only. 次の表で、各フィールドの意味を説明します。Their meanings are describes in the following table.

フォーマット ファイル フィールドFormat-file field 説明Description
バージョンVersion bcp ユーティリティのバージョン番号です。次の値があります。Version number of the bcp utility:

9.0 = SQL Server 2005SQL Server 20059.0 = SQL Server 2005SQL Server 2005

10.0 = SQL Server 2008:SQL Server 200810.0 = SQL Server 2008:SQL Server 2008

11.0 = SQL Server 2012SQL Server 201211.0 = SQL Server 2012SQL Server 2012

12.0 = SQL Server 2014SQL Server 201412.0 = SQL Server 2014SQL Server 2014

このバージョン番号は ではなくbcp Transact-SQLTransact-SQLだけで認識されます。The version number is recognized only by bcp, not by Transact-SQLTransact-SQL.

注: フォーマット ファイルの読み取りに使用される bcp ユーティリティ (Bcp.exe) のバージョンは、フォーマット ファイルの作成に使用されたバージョン、またはそれ以降のバージョンである必要があります。Note: The version of the bcp utility (Bcp.exe) used to read a format file must be the same as, or a later version than was used to create the format file. たとえば、 SQL Server 2012SQL Server 2012bcp では、 SQL Server 2008:SQL Server 2008bcp によって生成されるバージョン 10.0 のフォーマット ファイルを読み取ることができますが、 SQL Server 2008:SQL Server 2008bcp では、 SQL Server 2014SQL Server 2014bcp によって生成されるバージョン 12.0 のフォーマット ファイルを読み取ることができません。For example, SQL Server 2012SQL Server 2012bcp can read a version 10.0 format file, which is generated by SQL Server 2008:SQL Server 2008bcp, but SQL Server 2008:SQL Server 2008bcp cannot read a version 12.0 format file, which is generated by SQL Server 2014SQL Server 2014bcp.
列の数Number of columns データ ファイルのフィールドの数。Number of fields in the data file. この数は、すべての行で同じである必要があります。This number must be the same in all rows.

他のフォーマット ファイル フィールドには、一括インポートまたは一括エクスポートされるデータ フィールドが記述されます。The other format-file fields describe the data fields that are to be bulk imported or exported. 各データ フィールドは、フォーマット ファイル内に個別の行を必要とします。Each data field requires a separate row in the format file. フォーマット ファイルの各行には、次の表で示すフォーマット ファイル フィールドの値が含まれます。Every format-file row contains values for the format-file fields that are described in the following table.

フォーマット ファイル フィールドFormat-file field 説明Description
ホスト ファイル フィールドの順序Host file field order データ ファイル内の各フィールドの位置を示す番号。A number that indicates the position of each field in the data file. 行の最初のフィールドは 1 になり、それ以降のフィールドにも順番に番号が付けられます。The first field in the row is 1, and so on.
ホスト ファイル データ型Host file data type データ ファイルの特定のフィールドに格納されているデータ型。Indicates the data type that is stored in a given field of the data file. ASCII データ ファイルでは、SQLCHAR を使用します。ネイティブ形式のデータ ファイルでは、既定のデータ型を使用します。With ASCII data files, use SQLCHAR; for native format data files, use default data types. 詳細については、「 bcp を使用したファイル ストレージ型の指定 (SQL Server)」を参照してください。For more information, see Specify File Storage Type by Using bcp (SQL Server).
プレフィックス長Prefix length フィールドのプレフィックス長文字の数。Number of length prefix characters for the field. 有効なプレフィックス長は、0、1、2、4、および 8 です。Valid prefix lengths are 0, 1, 2, 4, and 8. プレフィックス長を指定しない場合は 0 を設定します。To avoid specifying the length prefix, set this to 0. フィールドに NULL データ値が含まれる場合には、プレフィックス長を指定する必要があります。A length prefix must be specified if the field contains NULL data values. 詳細については、「 bcp を使用したデータ ファイルのプレフィックス長の指定 (SQL Server)」を参照してください。For more information, see Specify Prefix Length in Data Files by Using bcp (SQL Server).
ホスト ファイルのデータ長Host file data length データ ファイルの特定フィールドに格納されるデータ型の最大バイト数。Maximum length, in bytes, of the data type stored in the particular field of the data file.

区切り形式のテキスト ファイル用に XML 以外のフォーマット ファイルを作成する場合、各データ フィールドのホスト ファイルのデータ長に 0 を指定できます。If you are creating a non-XML format file for a delimited text file, you can specify 0 for the host file data length of every data field. プレフィックス長が 0 で、ターミネータが含まれている、区切り形式のテキスト ファイルをインポートする場合、フィールドで使用されるストレージ領域のサイズはデータにターミネータを加えた長さであるため、フィールド長の値は無視されます。When a delimited text file having a prefix length of 0 and a terminator is imported, the field-length value is ignored, because the storage space used by the field equals the length of the data plus the terminator.

詳細については、「 bcp を使用したフィールド長の指定 (SQL Server)」を参照してください。For more information, see Specify Field Length by Using bcp (SQL Server).
ターミネータTerminator データ ファイルのフィールドを分割する区切り文字。Delimiter to separate the fields in a data file. 一般的なターミネータは、コンマ (,)、タブ (\t)、および行末 (\r\n) です。Common terminators are comma (,), tab (\t), and end of line (\r\n). 詳細については、「 フィールド ターミネータと行ターミネータの指定 (SQL Server)」を参照してください。For more information, see Specify Field and Row Terminators (SQL Server).
サーバーの列の順序Server column order SQL ServerSQL Server テーブルで列が表示される順序。Order in which columns appear in the SQL ServerSQL Server table. たとえば、データ ファイルの 4 番目のフィールドが、 SQL ServerSQL Server テーブルの 6 番目の列にマップされる場合、4 番目のフィールドのサーバーの列の順序は 6 になります。For example, if the fourth field in the data file maps to the sixth column in a SQL ServerSQL Server table, the server column order for the fourth field is 6.

テーブル内の列がデータ ファイルからデータを受け取らないようにするには、サーバーの列の順序の値に 0 を設定します。To prevent a column in the table from receiving any data from the data file, set the server column order value to 0.
サーバーの列名Server column name SQL ServerSQL Server テーブルからコピーされる列の名前。Name of the column copied from the SQL ServerSQL Server table. フィールドの実際の名前は必要ありませんが、フォーマット ファイルのフィールドは空白にはできません。The actual name of the field is not required, but the field in the format file must not be blank.
列の照合順序Column collation データ ファイル内の文字データや Unicode データを格納するときに使用される照合順序。The collation used to store character and Unicode data in the data file.

フォーマット ファイルを変更して、フィールドの数や順序がテーブル列とは異なるデータ ファイルから一括インポートできます。You can modify a format file to let you bulk import from a data file in which the number or order of the fields are different from the number or order of table columns. 詳細については、このトピックの「 関連タスク 」の一覧を参照してください。For more information, see the Related Tasks list, later in this topic.

XML 形式以外のフォーマット ファイルの例 Example of a Non-XML Format File

次の例は、以前に作成された XML 以外のフォーマット ファイル (myDepartmentIdentical-f-c.fmt) を示しています。The following example shows a previously created non-XML format file (myDepartmentIdentical-f-c.fmt). このファイルには、 HumanResources.Department サンプル データベースの AdventureWorks2012 テーブルの各列の文字データ フィールドが記述されています。This file describes a character-data field for every column in the HumanResources.Department table in the AdventureWorks2012 sample database.

生成されるフォーマット ファイル myDepartmentIdentical-f-c.fmtには、次の情報が含まれます。The generated format file, myDepartmentIdentical-f-c.fmt, contains the following information:

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 以外のフォーマット ファイルの構造」を参照してください。For an illustration that shows the format-file fields in relation to this sample non-XML format file, see Structure of Non-XML Format Files, earlier in this topic.

参照See Also

bcp ユーティリティ bcp Utility
フォーマット ファイルの作成 (SQL Server) Create a Format File (SQL Server)
XML フォーマット ファイル (SQL Server) XML Format Files (SQL Server)
データのインポートまたはエクスポート用のフォーマット ファイル (SQL Server) Format Files for Importing or Exporting Data (SQL Server)