在伺服器之間複製資料
若要將資料從某個 Microsoft SQL Server 資料庫大量傳送到其他資料庫,則來源資料庫的資料必須先大量匯出到檔案。然後再將該檔案大量匯入到目的地資料庫。
重要事項: |
---|
對於使用「簡單復原模式」的資料庫,在將資料大量匯入到資料表之後,建議您執行差異備份。至於使用大量記錄或「完整復原模式」的資料庫,執行記錄備份即已足夠。如需詳細資訊,請參閱<建立 SQL Server 資料庫的完整和差異備份>或<使用交易記錄備份>。 |
使用 bcp 或 Transact-SQL 在伺服器之間複製資料
您可以使用 bcp 命令來匯入或匯出資料,以及使用 BULK INSERT 或 INSERT ... SELECT * FROM OPENROWSET(BULK...) Transact-SQL 陳述式來匯入資料。
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)>。
附註: |
---|
如需複製完整資料庫的詳細資訊,請參閱<複製資料庫至其他伺服器>。 |
請參閱
概念
從舊版 SQL Server 匯入原生與字元格式資料
最佳化大量匯入效能
大量匯入及匯出資料的實例
使用 Unicode 字元格式匯入或匯出資料
其他資源
BACKUP (Transact-SQL)
bcp 公用程式
BULK INSERT (Transact-SQL)
OPENROWSET (Transact-SQL)
RESTORE (Transact-SQL)