在伺服器之間複製資料

若要將資料從某個 Microsoft SQL Server 資料庫大量傳送到其他資料庫,則來源資料庫的資料必須先大量匯出到檔案。然後再將該檔案大量匯入到目的地資料庫。

重要事項重要事項

對於使用「簡單復原模式」的資料庫,在將資料大量匯入到資料表之後,建議您執行差異備份。至於使用大量記錄或「完整復原模式」的資料庫,執行記錄備份即已足夠。如需詳細資訊,請參閱<建立 SQL Server 資料庫的完整和差異備份>或<使用交易記錄備份>。

使用 bcp 或 Transact-SQL 在伺服器之間複製資料

您可以使用 bcp 命令來匯出或匯入資料,以及使用 BULK INSERT 或 INSERT ... SELECT * FROM OPENROWSET(BULK...) Transact-SQL 陳述式來匯入資料。如需詳細資訊,請參閱<使用 bcp 公用程式匯入和匯出大量資料>和<使用 BULK INSERT 或 OPENROWSET(BULK...) 匯入大量資料>。

Bcp 命令可在不同處理器架構的不同 SQL Server 執行個體間,用來複製原生、字元或 Unicode 格式的資料。如果需要彈性,還可以使用格式檔案。用來匯出資料的格式或格式檔案,匯入資料時也必須使用。

[!附註]

若要在使用不同定序的伺服器執行個體之間複製資料,請參閱<在不同的定序間複製資料>。

將資訊存成 Unicode 原生格式

當資訊必須從一個 SQL Server 執行個體複製到另一個執行個體時,將資訊存成 Unicode 原生格式就很有用。針對非字元資料使用原生格式,可以節省時間,且避免在資料類型與字元格式之間,不必要的來回轉換。如果將擴充字元複製到非 Unicode 資料行,但又無法呈現擴充字元,便有可能遺失該字元。在使用不同字碼頁的伺服器之間大量傳送資料時,對所有字元資料使用 Unicode 字元格式,就可以避免遺失任何擴充字元。但是,Unicode 原生格式的資料檔可由 bcp 或支援大量匯入的 Transact-SQL 陳述式 (BULK INSERT 或 INSERT ...SELECT * FROM OPENROWSET(BULK...) 所讀取。

在資料庫之間複製資料的其他方法

除了使用 bcp 或 Transact-SQL,通常您還可以使用下列方法,將資料從一個 SQL Server 資料庫複製到另一個資料庫:

  • Integration Services (SSIS) 匯入和匯出精靈

    此精靈可以存取多種資料來源。您可以在 SQL Server、一般檔案、Microsoft Access、Microsoft Excel 與其他的 OLE DB 提供者之間,複製或貼上資料。如需詳細資訊,請參閱<使用 SQL Server 匯入和匯出精靈移動資料>。

  • 分散式查詢,此為 INSERT 陳述式的一部份。如需詳細資訊,請參閱<分散式查詢>與<INSERT (Transact-SQL)>。

  • SELECT INTO 陳述式,可指定結果集用來建立新的資料表。如需詳細資訊,請參閱<SELECT (Transact-SQL)>。

[!附註]

如需複製完整資料庫的詳細資訊,請參閱<複製資料庫至其他伺服器>。