共用方式為


使用資料檔案和格式檔案

適用於: SQL Server Azure SQL 資料庫 Azure SQL 受控執行個體 Azure Synapse Analytics Analytics Platform System (PDW)

最簡單的大量複製程式會執行下列動作:

  1. 呼叫 bcp_init ,以指定從數據表或檢視表大量複製數據檔 (set BCP_OUT)。

  2. 呼叫 bcp_exec 來執行大量複製作業。

數據檔會以原生模式建立;因此,數據表或檢視中所有數據行的數據會以與資料庫中相同的格式儲存在數據檔中。 然後,您可以使用這些相同的步驟將檔案大量複製到伺服器,並設定DB_IN,而不是DB_OUT。 只有當來源和目標數據表具有相同的結構時,才能運作。 產生的數據檔案也可以使用 /n (原生模式) 參數來輸入 bcp 公用程式

若要大量複製 Transact-SQL 語句的結果集,而不是直接從數據表或檢視表複製:

  1. 呼叫 bcp_init 以指定大量複製,但指定數據表名稱的NULL。

  2. 呼叫 eOption 設為 BCPHINTS 且 iValue 設定為包含 Transact-SQL 語句之 SQLTCHAR 字串指標的bcp_control。

  3. 呼叫 bcp_exec 以執行大量複製作業。

Transact-SQL 語句可以是任何產生結果集的語句。 系統會建立數據檔,其中包含 Transact-SQL 語句的第一個結果集。 如果 Transact-SQL 語句產生多個結果集,大量複製會忽略第一個結果集之後的任何結果集。

若要建立數據檔,其中數據行數據儲存的格式與數據表不同,請呼叫 bcp_columns 以指定將會變更的數據行數目,然後針對您想要變更其格式的每個數據行呼叫 bcp_colfmt 。 呼叫 bcp_init 之後,但在呼叫 bcp_exec 之前,即已完成bcp_colfmt指定數據行資料儲存在數據檔中的格式。 大量複製或移出時可以使用。您也可以使用 bcp_colfmt 來設定資料列和資料行終止符。 例如,如果您的數據不包含製表元,您可以使用bcp_colfmt來建立以製表符分隔的檔案,將索引卷標字元設定為每個數據行的終止符。

大量複製和使用bcp_colfmt時,您可以輕鬆地建立格式檔案,描述您在最後一次呼叫bcp_colfmt之後呼叫bcp_writefmt所建立的數據檔。

從格式檔案描述的數據檔大量複製時,請在bcp_init之後呼叫 bcp_readfmt,但在bcp_exec之前呼叫 bcp_readfmt 來讀取格式檔案

從數據檔大量複製到 SQL Server 時,bcp_control 函式會控制數個選項。 bcp_control設定選項,例如終止前的錯誤數目上限、要啟動大量複製的檔案中的數據列、要停止的數據列,以及批次大小。

另請參閱

執行大量複製作業 (ODBC)