次の方法で共有


XML 以外のフォーマット ファイルを使用する (SQL Server)

適用対象: SQL Server Azure SQL データベース Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)

SQL Server で一括エクスポートと一括インポートを実行する場合にサポートされるフォーマット ファイルには、XML 以外のフォーマット ファイルXML フォーマット ファイルの 2 種類があります。

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

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

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

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

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

Note

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

Note

一括挿入を含むこの構文は、Azure Synapse Analytics ではサポートされていません。 Azure Synapse Analytics やその他のクラウド データベース プラットフォーム統合では、Azure Data Factory の COPY ステートメントを介して、または COPY INTO や PolyBase などの T-SQL ステートメントを使用してデータ移動を実行します。

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

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

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

xml 以外のフォーマット ファイルのフィールドを指定します。

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

フォーマット ファイル フィールド 説明
バージョン bcp ユーティリティのバージョン番号です。次の値があります。

9.0 = SQL Server 2005 (9.x)

10.0 = SQL Server 2008 (10.0.x)

11.0 = SQL Server 2012 (11.x)

12.0 = SQL Server 2014 (12.x)

このバージョン番号は、Transact-SQL ではなく、bcp によって認識されます。



注: フォーマット ファイルの読み取りに使用される bcp ユーティリティ (Bcp.exe) のバージョンは、フォーマット ファイルの作成に使用されたバージョン、またはそれ以降のバージョンである必要があります。 たとえば、SQL Server 2012 (11.x) の bcp を使用すると、SQL Server 2008 (10.0.x) の bcp によって生成されるバージョン 10.0 のフォーマット ファイルを読み取ることができますが、SQL Server 2008 (10.0.x) の bcp を使用すると、SQL Server 2014 (12.x) の bcp によって生成されるバージョン 12.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 データを格納するときに使用される照合順序。

Note

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

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

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

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

12.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     ""

Note

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

関連タスク

次のステップ