我已在客户的服务器上安装了SQL Server数据库。
我的笔记本电脑上有一个完全相同的数据库架构,让我可以在外出时处理事情。
但是我需要将客户数据库中的实际数据复制到笔记本电脑上的副本中,以便测试一些内容。
最简单的方法是什么?
客户服务器和我的笔记本电脑没有连接(虽然我有客户服务器的VPN访问权限),所以我不相信我能用TSQL做到这一点。
有没有办法从SSMS导出然后导入我的笔记本电脑数据库?
答案 0 :(得分:1)
Backaup
您的数据库,然后restore
在另一台服务器上。
来自MSDN:
RESTORE 如果要还原的数据库不存在,则用户必须具有CREATE DATABASE权限才能执行RESTORE。 如果数据库存在,则RESTORE权限默认为成员 sysadmin和dbcreator固定服务器角色和所有者(dbo)的 数据库(对于FROM DATABASE_SNAPSHOT选项,数据库始终 存在)。
RESTORE权限被赋予其中的成员资格信息 随时可供服务器使用。因为固定数据库角色 只有在可访问数据库时才能检查成员资格 没有损坏,执行RESTORE时并非总是如此, db_owner固定数据库角色的成员没有RESTORE 权限。
答案 1 :(得分:0)
对于类似情况,我所做的是将客户数据库脱机(分离),将文件复制到我的笔记本电脑并将数据库重新附加回客户服务器。
使用SSM并右键单击数据库并单击“分离”。确保没有人正在积极研究数据库。另外请确保您知道mdf文件的位置,并且您可以访问它。分离后,请关闭文件。然后转到SSMS,右键单击“数据库”并选择“附加”。再次选择mdf文件,然后将数据库返回到客户的服务器上。
您可以将在上述步骤中复制的mdf文件附加到您自己的服务器实例中。
另一方面,您将在笔记本电脑上进行备份和恢复。
答案 2 :(得分:0)
另一种选择是设置数据复制。 详情请见here
答案 3 :(得分:0)
既然您已经提到可以通过VPN连接,您可以使用INSERT INTO...SELECT
将数据从一台服务器复制到另一台服务器,例如
INSERT INTO server2.database.dbo.tableName (col1, ..., colN)
SELECT col1, ..., colN
FROM server2.database.dbo.tableNam
或在SSMS中使用Backup and Restore
功能
答案 4 :(得分:0)
您可以使用Generate Script
任务:
您还可以使用Copy Databse
复制所有数据库:
http://www.mssqltips.com/sqlservertip/1792/upgrading-to-sql-server-2008-using-copy-database-wizard/
或Export data
:
http://blog.winhost.com/exporting-sql-server-data-with-import-and-export-wizard/