我有两个MSSQL服务器运行,或多或less相同的数据集。 这实际上是一个生产/开发设置。
现在,我的工作stream程就是这样。 每天备份都由生产服务器上的每个数据库组成。 我通过互联网(10千兆字节)将备份传输到开发服务器。 我使用来自生产服务器的备份“恢复”开发服务器上的数据库,以便拥有当前的数据集。
我的问题是这样的:
有没有一种简单而快速的方法来从MSSQL服务器数据库中“导出”单个表并将其导入到不同的MSSQL服务器中的数据库中?
我更感兴趣的是一种“最佳实践”types的操作,而不是一些受陪审员操纵的POS技巧。
UPDATE
一些谷歌search后,我发现MSSQL服务器的function,生成一个脚本,导出表,并在运行时导入它。 我不能使用这个,因为我需要在另一个服务器中导入表。
您还可以在目标服务器上直接获取每个SQL的数据。 如果您有networking访问权限:
SELECT a.* INTO <YOUR TARGET TABLE> FROM OPENROWSET('SQLNCLI', 'Server=<IP/SERVERNAME>;Trusted_Connection=yes;', 'SELECT * FROM <YOUR TABLE> ') AS a;
但是你必须由你自己创build索引。
或者你使用INSERT:
INSERT INTO <YOUR TARGET TABLE> FROM OPENROWSET('SQLNCLI', 'Server=<IP/SERVERNAME>;Trusted_Connection=yes;', 'SELECT * FROM <YOUR TABLE> ') AS a;
导出部分已经通过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
谷歌产生另一种方式:
一旦你有一个单一的表导出,无论如何传输(例如rsync,或SFTP,SCP),然后导入它。