共用方式為


使用資料檔案和格式檔案

適用於:SQL ServerAzure SQL DatabaseAzure SQL 受控執行個體Azure Synapse AnalyticsAnalytics 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)