跨 2 個不同的 MSSQL 伺服器複製資料庫表

跨 2 個不同的 MSSQL 伺服器複製資料庫表

我有 2 個 MSSQL 伺服器正在運行,資料集或多或少相同。這實際上是一個生產/開發設定。

現在,我的工作流程是這樣的。每天都會對生產伺服器上的每個資料庫進行備份。我透過網路(數十千兆位元組)將備份傳輸到開發伺服器。我使用生產伺服器上的備份「恢復」開發伺服器上的資料庫,這樣我就有了當前的資料集。

我的問題是這樣的:

是否有一種簡單快速的方法可以從 MSSQL 伺服器資料庫「匯出」單一表並將其匯入到不同 MSSQL 伺服器的資料庫中?

我對「最佳實踐」類型的操作更感興趣,而不是一些臨時操縱的 POS 技巧。

更新

經過一番谷歌搜尋後,我發現 MSSQL Server 的一個函數可以產生一個腳本,該腳本可以匯出表並在運行時導入它。我無法使用它,因為我需要將表匯入到另一台伺服器。

答案1

您也可以直接在目標伺服器上透過 SQL 取得資料。如果您有網路存取權限:

SELECT a.*
INTO <YOUR TARGET TABLE>
FROM OPENROWSET('SQLNCLI', 'Server=<IP/SERVERNAME>;Trusted_Connection=yes;',
     'SELECT *
      FROM <YOUR TABLE>
      ') AS a;

但索引必須自行建立。

或者您使用 INSERT:

INSERT INTO 
<YOUR TARGET TABLE>
FROM OPENROWSET('SQLNCLI', 'Server=<IP/SERVERNAME>;Trusted_Connection=yes;',
         'SELECT *
          FROM <YOUR TABLE>
          ') AS a;

答案2

匯出部分已在DBA處得到答覆:

https://dba.stackexchange.com/questions/25755/take-a-backup-of-a-single-table-in-the-sql-server

如何在 SQL Server 上匯出單一表也在 Stackoverflow 上得到了多次解答:

https://stackoverflow.com/questions/680552/table-level-backup

https://stackoverflow.com/questions/19698310/backup-a-single-table-with-its-data-from-a-database-in-sql-server-2008

谷歌也提供了很多方法:

https://social.msdn.microsoft.com/Forums/sqlserver/en-US/923d1a5a-2f21-4193-9513-ab944145a58f/exporting-a-single-table-from-a-database

匯出單一表後,可以透過任何方式(例如 rsync,或 SFTP、scp)傳輸該表,然後匯入它。

相關內容