Share via


使用 bcp 指定相容性的資料格式

如果大量匯出 Microsoft SQL Server 資料是為了要將其大量匯入至另一個程式,例如另一個資料庫程式,則在來源資料表中的預設資料格式 (原生、字元或 Unicode) 可能和其他程式所預期的資料配置不相容。如果匯出資料時發生了不相容的狀況,您就必須描述資料配置的方式。

ms190759.note(zh-tw,SQL.90).gif附註:
如果不熟悉匯入或匯出資料的資料格式,請參閱<用於匯入或匯出資料的資料格式>。

bcp 命令讓您可以根據下列資料格式屬性,指定資料檔中每個欄位的結構:

  • 檔案儲存類型
    檔案儲存類型描述資料如何儲存在資料檔中。資料可以依其資料庫資料表類型 (原生格式)、依其字元表示 (字元格式),或者依支援隱含轉換的任何資料類型匯出至資料檔;例如,將 smallint 複製為 int。使用者自訂資料類型會依其基底類型匯出。如需詳細資訊,請參閱<使用 bcp 指定檔案儲存類型>。
  • 前置詞長度
    為了讓原生格式的資料大量匯出至資料檔時,能夠有最精簡的檔案儲存方式,bcp 命令在每一個欄位前面都有加上一或多個字元,指出欄位的長度。這些字元稱作*「長度前置字元」*。如需詳細資訊,請參閱<在資料檔中指定前置詞長度>。
  • 欄位長度
    欄位長度會指出以字元格式表現資料所需的最大字元數。如果資料是以原生格式儲存,則欄位長度為已知。如需詳細資訊,請參閱<使用 bcp 指定欄位長度>。
  • 欄位結束字元
    針對字元資料欄位,選擇性的結束字元讓您可以標示資料檔中每個欄位的結尾 (使用*「欄位結束字元」),以及每個資料列的結尾 (使用「資料列結束字元」*)。結束字元可讓讀取資料檔的程式知道某個欄位或資料列在何處結束,另一個在何處開始。如需詳細資訊,請參閱<指定欄位和資料列結束字元>。

欄位專用提示字元的概觀

如果互動式 bcp 命令包含 inout 選項,但不包含格式檔案參數 (-f) 或資料格式參數 (-n-c-w-N),則來源資料表或目標資料表中的每個資料行,會相繼出現每個先前屬性的命令提示字元。在每個提示字元中,bcp 命令的預設值,是根據資料行的 SQL Server 資料類型而提供的。接受所有提示字元的預設值,會和在命令行上指定原生格式 (-n) 產生相同結果。每個提示字元會將預設值顯示於方括號中:[default]。按下 ENTER 即可接受顯示的預設。若要指定預設以外的值,請在提示字元中輸入新值。

範例

下列範例使用 bcp 命令,將資料以互動方式從 HumanResources.myTeam 資料表中大量匯出到 myTeam.txt 檔案。您必須先建立此資料表,才能執行範例。如需有關資料表及如何建立資料表的資訊,請參閱<建立 HumanResources.myTeam 資料表>。

命令不會指定格式檔案,也不會指定資料類型,所以會導致 bcp 出現提示詢問資料格式資訊。在 Microsoft Windows 命令提示字元中,輸入:

bcp AdventureWorks.HumanResources.myTeam out myTeam.txt -T

bcp 會針對每個資料行提示欄位專用的值。下列範例將為資料表的 EmployeeIDName 資料行,顯示欄位專用的提示字元,並為每個資料行建議預設的檔案儲存類型 (原生格式)。EmployeeIDName 資料行的前置詞長度分別為 0 和 2。使用者指定逗號 (,),作為每個欄位的結束字元。

Enter the file storage type of field EmployeeID [smallint]:

Enter prefix-length of field EmployeeID [0]:

Enter field terminator [none]:,

Enter the file storage type of field Name [nvarchar]:

Enter prefix length of field Name [2]:

Enter field terminator [none]:,

.

.

.

相等的提示字元 (視需要而定) 會依序顯示在每個資料表資料行中。

將逐欄資料儲存至非 XML 格式檔案中

指定完所有的資料表資料行之後,bcp 命令會提示您選擇性地產生非 XML 格式檔案,該檔案儲存了方才提供的逐欄資訊 (請參閱先前範例)。如果您選擇產生格式檔案,則可以隨時匯出該資料表的資料,或將類結構化資料匯入到 SQL Server。

ms190759.note(zh-tw,SQL.90).gif附註:
您可以使用格式檔案,從資料檔中將資料大量匯入到 SQL Server 執行個體,或從資料表中大量匯出資料,而不需重新指定格式。如需詳細資訊,請參閱<用於匯入或匯出資料的格式檔案>。

下列範例會建立一個名為 myFormatFile.fmt 的非 XML 格式檔案。

Do you want to save this format information in a file? [Y/n] y

Host filename: [bcp.fmt]myFormatFile.fmt

格式檔案的預設名稱為 bcp.fmt,但您也可以選擇指定不同的檔案名稱。

ms190759.note(zh-tw,SQL.90).gif附註:
對於使用單一資料格式作為檔案儲存類型的資料檔,例如字元或原生格式,您可以快速建立格式檔案,不必透過 Format 選項來匯出或匯入資料。此方法的好處是容易使用,並且讓您可以建立 XML 格式檔或非 XML 格式檔。如需詳細資訊,請參閱<建立格式檔案>。

在此章節中

此章節包含下列主題。

主題 資料格式屬性

使用 bcp 指定檔案儲存類型

包含在 bcp 命令中指定檔案儲存類型的相關資訊。

在資料檔中指定前置詞長度

包含在 bcp 命令中指定前置詞長度的相關資訊。

使用 bcp 指定欄位長度

包含在 bcp 命令中指定欄位長度的相關資訊。

指定欄位和資料列結束字元

包含在 bcp 命令中指定欄位和資料列結束字元的相關資訊。

字元格式資料的儲存

包含如何將字元格式資料儲存至匯出資料檔的相關資訊。

請參閱

概念

大量匯入及匯出資料的實例

其他資源

bcp 公用程式
資料類型 (Transact-SQL)

說明及資訊

取得 SQL Server 2005 協助