瞭解非 XML 格式檔案

在 Microsoft SQL Server 2000 和更舊的版本中,大量匯出和匯入只能使用一種格式檔案。Microsoft SQL Server 2005 支援這種格式檔案。SQL Server 2005 也支援使用 XML 格式檔案作為替代。為了要和原始類型的格式檔案區分,這種格式檔案稱為*「非 XML 格式檔案」*。

ms191479.note(zh-tw,SQL.90).gif附註:
XML 格式檔案提供了許多優點。如需詳細資訊,請參閱<用於匯入或匯出資料的格式檔案>。

通常,可以透過下列其中一種方法,使用 bcp 命令來建立特定資料格式的格式檔案:

  • 您可以在 bcp 命令中指定 format 選項,建立任一類型的格式檔案,例如字元資料或原生資料。如需詳細資訊,請參閱<建立格式檔案>。
  • 您可以建立非 XML 格式檔案,其中包含以互動方式,針對每個資料欄位所指定的屬性。如需詳細資訊,請參閱<使用 bcp 指定相容性的資料格式>。
    ms191479.note(zh-tw,SQL.90).gif附註:
    bcp 命令中指定現有的格式檔案時,命令會使用記錄在格式檔案中的值,而且不提示您輸入檔案儲存類型、前置詞長度、欄位長度或欄位結束字元。

非 XML 格式檔案的結構

非 XML 格式檔案是具有特定結構的文字檔。非 XML 格式檔案包含每個資料表資料行的檔案儲存類型、前置詞長度、欄位長度和欄位結束字元等相關資訊。

下圖說明非 XML 格式範例檔案的格式檔案欄位。

識別非 XML 格式檔案的欄位

VersionNumber of columns 欄位只出現一次。下表描述其意義。

格式檔案欄位

描述

Version

bcp 公用程式的版本號碼:

6.5 = SQL Server 6.5 版

7.0 = SQL Server 7.0 版

8.0 = SQL Server 2000

9.0 = SQL Server 2005

只能由 bcp 辨識版本號碼,而不是由 Transact-SQL 辨識。

ms191479.note(zh-tw,SQL.90).gif附註:

用於讀取格式檔案的 bcp 公用程式 (Bcp.exe) 版本必須與用於建立格式檔案的版本相同,或比它更新。例如,SQL Server 2005 bcp 可以讀取由 SQL Server 2000 bcp 產生的 8.0 版格式檔案,但是 SQL Server 2000 bcp 無法讀取由 SQL Server 2005 bcp 產生的 9.0 版格式檔案。

資料行數

資料檔的欄位數。在所有資料列中此數目必須相同。

其他格式檔案欄位描述要大量匯入或匯出的資料欄位。每個資料欄位在格式檔案中,必須有個別的資料列來代表。每個格式檔案資料列都包含下表所述之格式檔案欄位的值。

格式檔案欄位 描述

主檔案欄位順序

指出資料檔中每個欄位之位置的號碼。資料列中的第一個欄位為 1,其餘依此類推。

主檔案資料類型

指出存放在資料檔給定欄位中的資料類型。對於 ASCII 資料檔,請使用 SQLCHAR;對於原生 (Native) 格式的資料檔,請使用預設的資料類型。如需詳細資訊,請參閱<使用 bcp 指定檔案儲存類型>。

前置詞長度

該欄位的長度前置詞字元數。有效的前置詞長度為 0、1、2、4 和 8。若要避免指定長度前置詞,請將此值設為 0。如果欄位中包含 NULL 資料值,則必須指定長度前置詞。如需詳細資訊,請參閱<在資料檔中指定前置詞長度>。

主檔案資料長度

儲存於資料檔特定欄位中的資料類型最大長度,以位元組為單位。

如果您要為分隔的文字檔建立非 XML 格式檔案,可以將每個資料欄位的主檔案資料長度指定為 0。當分隔文字檔的前置詞長度為 0 且已匯入結束字元,則會忽略欄位長度值,因為欄位使用的儲存空間即等於資料加上結束字元的長度。

如需詳細資訊,請參閱<使用 bcp 指定欄位長度>。

結束字元

用來分隔資料檔中欄位的分隔符號。一般的結束字元為逗點 (,)、定位點 (\t) 和行尾 (\r\n)。如需詳細資訊,請參閱<指定欄位和資料列結束字元>。

伺服器資料行順序

資料行出現在 SQL Server 資料表中的順序。例如,如果資料檔的第四個欄位對應至 SQL Server 資料表的第六個資料行,那麼第四個欄位的伺服器資料行順序為 6。

若要防止資料表中的某個資料行接收資料檔中的任何資料,請將伺服器資料行順序值設為 0。

伺服器資料行名稱

從 SQL Server 資料表複製的資料行名稱。欄位的實際名稱不是必要的,但是格式檔案中的欄位不能是空白。

資料行定序

用來儲存資料檔的字元和 Unicode 資料的定序。

ms191479.note(zh-tw,SQL.90).gif附註:
您可以修改格式檔案,讓您從欄位數目或順序與資料表資料行數目或順序不同的資料檔,進行大量匯入。如需詳細資訊,請參閱<在大量匯入期間使用格式檔案將欄位對應到資料行>。

範例

下列範例顯示先前建立的非 XML 格式檔案 (myDepartmentIdentical-f-c.fmt)。這個檔案針對 AdventureWorks 範例資料庫的 HumanResources.Department 資料表,描述其中每個資料行的字元資料欄位。

產生的格式檔案 myDepartmentIdentical-f-c.fmt 包含下列資訊:

9.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     ""
ms191479.note(zh-tw,SQL.90).gif附註:
如需與這個非 XML 格式範例檔案有關的格式檔案欄位圖解,請參閱本主題稍早的「非 XML 格式檔案的結構」。

請參閱

概念

建立格式檔案
了解 XML 格式檔案
使用格式檔案

其他資源

bcp 公用程式

說明及資訊

取得 SQL Server 2005 協助