SQL Server数据库远程传输 - 最好的方法

时间:2012-01-27 20:40:28

标签: sql-server database sql-server-2008 database-backups

我有两个数据库,一个在远程服务器上,另一个在本地。 (SQL Server 2008)

我本地服务器上的数据库具有整个结构设置但没有数据。我想将数据从远程服务器复制到我的服务器,我想知道最好的方法。

我遇到的主要问题是我对远程数据库的用户权限有限。我无法读取存储过程,用户定义的函数,因此当我使用导入/导出向导时,我没有得到架构等。因此,常规转储/恢复对我不起作用,因为它恢复没有主键/外键的表和存储过程。

我想这样做,

INSERT INTO localtable SELECT * FROM remotedb.table

由于IDENTITY字段,我遇到了问题,因此我必须明确命名所有列。此外,我不确定SQL Server Management Studio是否允许您使用两个不同的数据库,远程和本地,所以我正在寻找任何建议。

我也尝试过像SQL FTP和Backup这样的应用程序,但由于内存不足(我在机器上有16GB的内存,而DB就像4GB),它失败了。我也可以使用SQL Server导入/导出向导,但后来我没有得到架构信息。我还尝试了从Red Gate的SQL Compare,它遇到了权限问题。不幸的是,我没有时间请求并获得新用户的访问权限,因此我希望有人有创意。

1 个答案:

答案 0 :(得分:1)

  1. 您绝对可以使用SQL Server备份。它不会耗尽内存。如果确实如此,请告诉我们这条消息(因为你可能误解了它)。这是最快,最完整的解决方案。
  2. 您可以告诉导出向导也为架构编写脚本。它隐藏在某个地方的“高级”(可怕的用户界面)下。但是脚本非常大,我知道无法执行它。
  3. 您可以删除目标数据库中除PK之外的所有架构对象。然后,您可以使用远程查询来复制所有数据。如果你事先放弃,你不会遇到外键和标识列的任何问题。完成后,您可以重新创建所有这些对象。最好是为所有这些使用事务,因为这样可以从某个时间点获得一致的源数据。