共用方式為


準備大量匯出或匯入的資料

更新: 2007 年 9 月 15 日

本節討論關於大量匯出作業之規劃與大量匯入作業之需求的考量。

ms188609.note(zh-tw,SQL.90).gif附註:
如果您不確定如何格式化資料檔案來進行大量匯入,則可以使用 bcp 公用程式從資料表匯出資料至資料檔案中。此檔案中每個資料欄位的格式會顯示將資料大量匯入對應資料表資料行所需的格式。請使用資料檔案欄位的相同資料格式。

大量匯出的資料檔格式考量

在使用 bcp 命令執行大量匯出作業之前,請考慮下列事項:

  • 將資料匯出到檔案時,bcp 命令會利用指定的檔名自動建立資料檔。如果該檔名已在使用中,則大量複製到資料檔的資料會覆寫檔案現有的內容。
  • 從資料表或檢視大量匯出到資料檔,需要大量複製的資料表或檢視之 SELECT 權限。
  • Microsoft SQL Server 可使用平行掃描來擷取資料。因此,從 SQL Server 執行個體大量匯出的資料表資料列,通常不能保證在資料檔中具有特定順序。若要確定大量匯出的資料表資料列以特定順序出現在資料檔中,請使用 queryout 選項從查詢大量匯出,並指定 ORDER BY 子句。如需詳細資訊,請參閱<將查詢的資料匯出到資料檔>。

大量匯入的資料檔格式需求

若要從資料檔匯入資料,該檔案必須符合下列基本需求:

  • 資料必須為資料列與資料行的格式。
ms188609.note(zh-tw,SQL.90).gif附註:
因為在大量匯入處理期間可略過或重新排列資料行,資料檔的結構並不需要與 SQL Server 資料表的結構相同。
  • 資料檔中的資料必須為支援的格式,如字元或原生格式。
  • 資料的格式可以是字元或原生二進位格式,包括 Unicode。
  • 若要使用 bcp 命令、BULK INSERT 陳述式或 INSERT ...SELECT * FROM OPENROWSET(BULK...) 陳述式來匯入資料,目標資料表必須已經存在。
  • 資料檔中的每個欄位都必須與目標資料表中的對應資料行相容。例如,無法將 int 欄位載入 datetime 資料行。如需詳細資訊,請參閱<使用原生、字元或 Unicode 格式>與<使用 bcp 指定相容性的資料格式>。
    ms188609.note(zh-tw,SQL.90).gif附註:
    若要指定從資料檔而非整個檔案中匯入資料列子集,您可以使用 bcp 命令搭配 -F first_row 參數及/或 -L last_row 參數。如需詳細資訊,請參閱<bcp 公用程式>。
  • 若要從固定長度或固定寬度欄位的資料檔案匯入資料,您必須使用格式檔案。如需詳細資訊,請參閱<範例 XML 格式檔案>。
  • 在某些情況,可以使用以逗號分隔值 (CSV) 的檔案作為將資料大量匯入 SQL Server 的資料檔案。請注意,CSV 檔案的欄位結束字元不一定要為逗號。如果 CSV 檔案要作為大量匯入的資料檔案,檔案必須符合下列限制:
    • 資料欄位絕不包含欄位結束字元。
    • 資料欄位中的值要不完全沒有以雙引號 (“”) 括住,要不所有的值都以雙引號括住。
      若要從 Microsoft FoxPro 檔案、Visual FoxPro table (.dbf) 檔案或 Microsoft Excel 工作表 (.xls) 檔案,請將該資料轉換成 .CSV 檔案,該檔案的副檔名通常為 .csv。然後,您就可以在 SQL Server 大量匯入作業中,將 .csv 檔當做資料檔案使用。

此外,將資料從資料檔大量匯入到資料表中需要下列:

  • 使用者必須具有該資料表的 INSERT 與 SELECT 權限。使用者在使用需要資料定義語言 (DDL) 作業的選項 (如停用條件約束) 時,也需要 ALTER TABLE 權限。
  • 當您使用 BULK INSERT 或 INSERT ...SELECT * FROM OPENROWSET(BULK...) 來大量匯入資料時,SQL Server 處理序的安全性設定檔 (若使用者利用 SQL Server 提供的登入來登入) 和用於委託安全性的 Microsoft Windows 登入,必須可存取資料檔以進行讀取作業。此外,使用者必須具有 ADMINISTER BULK OPERATIONS 權限才能讀取檔案。
ms188609.note(zh-tw,SQL.90).gif附註:
系統並不支援大量匯入到資料分割檢視,而嘗試將資料大量匯入到資料分割檢視會失敗。

請參閱

概念

使用字元格式匯入或匯出資料
使用原生格式匯入或匯出資料
了解 XML 格式檔案

其他資源

bcp 公用程式
BULK INSERT (Transact-SQL)
資料類型 (Transact-SQL)
ExportData Method
ImportData Method

說明及資訊

取得 SQL Server 2005 協助

變更歷程記錄

版本 歷程記錄

2007 年 9 月 15 日

變更的內容:
  • 詳細討論準備 CSV 檔案作為大量匯入使用。

2006 年 7 月 17 日

新增內容:
  • 在簡介中新增附註。
  • 新增有關如何匯入固定長度或固定寬度欄位的要求事項。

2006 年 4 月 14 日

新增內容:
  • 新增有關從 SQL Server 外部匯入資料時資料檔格式的資訊。