2010-10-26 111 views

回答

3

如果你不关心的第二个数据库中的数据(你不是在寻找合并),你可以备份你的数据库,然后在另外一个它恢复。

我可以张贴截图来演示如果你喜欢。

~~~~~~~~截图添加~~~~~~~~~~~~~~

打开管理工作室&连接,然后进入备份数据库从任务菜单:

alt text

然后点击确定按钮备份数据库(注意,选择不同的备份目录,例如C:\可能不是一个坏主意,以便稍后尝试恢复时不会“正在使用”) :

alt text

选择了第二个数据库恢复要粘贴过来:

alt text

从列表中选择1号数据库,或浏览到该文件备份:

alt text

对现有数据执行还原时,可能需要在选项选项卡上选中此复选框:

alt text

单击确定,它应该工作。

+0

我只想所有frmo数据一个数据库被复制到另一个数据库。我会喜欢一些快照!谢谢 – 2010-10-26 21:31:35

1

让自己的红门SQL Data Compare - 工作的最佳工具,传递信息。

更新:如果你不能或不想花钱,而是要花费大量的时间,你当然可以做这样的事情为每个表:

INSERT INTO TargetDatabase.dbo.YourTable1(list of fields) 
    SELECT (list of fields) FROM SourceDatabase.dbo.YourTable1 

然后再为其他199个表格重复此操作。

+1

@marc:我只是想将所有数据从一个数据库复制到另一个数据库 – 2010-10-26 21:20:07

+0

yes - 获取该数据的SQL数据比较 - 这是做这件事的最佳工具。 – 2010-10-26 21:22:16

+0

@marc是否有免费的方式来做到这一点? – 2010-10-26 21:22:49

2

您可以使用SSMS中的导出向导。右键单击源数据库,选择任务/导出数据并按照步骤操作。有200张桌子有点乏味,但它是免费的。

2

无需花费$,你可以使用SELECT ... INTO ...语法 - 提供INTO子句中指定的表不会在目标数据库中已经存在:

SELECT * 
    INTO new_db.dbo.table 
    FROM old_db.dbo.table 

但是,这不会迁移约束,触发器,作业,登录名,角色等。如果数据库位于不同主机上,则可以使用Linked Server instance来连接它们,并使用四个名称表示法来引用远程实例。

至于处理大约200个表,您需要使用动态SQL来创建语句,因为您无法在动态SQL中提供表名作为变量。表格列表可以来自SYS.TABLESINFORMATION_SCHEMA.TABLES

相关问题