在两个不同的 MSSQL 服务器之间复制数据库表

在两个不同的 MSSQL 服务器之间复制数据库表

我有 2 个 MSSQL 服务器在运行,数据集大致相同。这实际上是一个生产/开发设置。

现在,我的工作流程是这样的。每天备份生产服务器上的每个数据库。我通过互联网将备份(数十 GB)传输到开发服务器。我使用生产服务器的备份“恢复”开发服务器上的数据库,这样我就有了一个最新的数据集。

我的问题是:

是否有一种简单快捷的方法可以从 MSSQL 服务器数据库中“导出”单个表并将其导入到不同 MSSQL 服务器的数据库中?

我对于“最佳实践”类型的操作比一些临时拼凑的 POS 技巧更感兴趣。

更新

经过一番 Google 搜索后,我发现 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/taking-a-backup-of-a-single-table-in-the-sql-server

如何导出 SQL 服务器上的单个表在 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),然后导入它。

相关内容