SQL Server 2008:将所有表的内容从一个数据库复制到另一个数据库

SQL Server 2008:将所有表的内容从一个数据库复制到另一个数据库,sql,sql-server,sql-server-2008,ssms,Sql,Sql Server,Sql Server 2008,Ssms,我有两个具有相同模式的数据库。我需要将所有表的内容从一个数据库复制到另一个数据库中。最好的方法是什么?大约有200张桌子。我有SSM。给自己弄一个红门——这是做这项工作的最佳工具,不用动手 更新:如果你不能或不想花钱,而是想花很多时间,你当然可以为每张桌子做类似的事情: INSERT INTO TargetDatabase.dbo.YourTable1(list of fields) SELECT (list of fields) FROM SourceDatabase.dbo.YourT

我有两个具有相同模式的数据库。我需要将所有表的内容从一个数据库复制到另一个数据库中。最好的方法是什么?大约有200张桌子。我有SSM。

给自己弄一个红门——这是做这项工作的最佳工具,不用动手

更新:如果你不能或不想花钱,而是想花很多时间,你当然可以为每张桌子做类似的事情:

INSERT INTO TargetDatabase.dbo.YourTable1(list of fields)
   SELECT (list of fields) FROM SourceDatabase.dbo.YourTable1
然后对其他199张表也重复这一步骤。

自己动手做红门——这是完成这项工作的最佳工具

更新:如果你不能或不想花钱,而是想花很多时间,你当然可以为每张桌子做类似的事情:

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

然后对其他199个表也重复此操作。

我使用了RedGate的Data compare,它在解决数据问题时非常有用


我使用RedGate的Data compare,它在解决数据问题时非常有用


如果您不关心第二个数据库中的数据,也不希望合并,则可以备份数据库,然后通过另一个数据库进行恢复

如果你愿意,我可以发布截图来演示如何操作

~~~~~~~~~~~添加了屏幕截图~~~~~~~~~~~~~~

打开management studio&connect,然后从任务菜单进入备份数据库:

然后单击“确定”按钮备份数据库注释,选择不同的备份目录,如C:\可能不是一个坏主意,以便在以后尝试还原时不使用它:

为要粘贴的第二个数据库选择还原:

从列表中选择第一个数据库,或浏览到要从中备份的文件:

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


单击“确定”,它应该可以工作。

如果您不关心第二个数据库中的数据,您不需要寻找合并,您可以备份您的数据库,然后通过另一个数据库还原它

如果你愿意,我可以发布截图来演示如何操作

~~~~~~~~~~~添加了屏幕截图~~~~~~~~~~~~~~

打开management studio&connect,然后从任务菜单进入备份数据库:

然后单击“确定”按钮备份数据库注释,选择不同的备份目录,如C:\可能不是一个坏主意,以便在以后尝试还原时不使用它:

为要粘贴的第二个数据库选择还原:

从列表中选择第一个数据库,或浏览到要从中备份的文件:

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


单击“确定”,它应该可以工作。

您可以在SSMS中使用导出向导。右键单击源数据库,选择任务/导出数据,然后按照步骤操作。对于200个表来说有点繁琐,但它是免费的。

您可以在SSMS中使用导出向导。右键单击源数据库,选择任务/导出数据,然后按照步骤操作。对于200个表来说有点乏味,但它是免费的。

如果不花费美元,您可以使用语法-前提是INTO子句中指定的表在目标数据库中不存在:

SELECT *
  INTO new_db.dbo.table
  FROM old_db.dbo.table
但这不会迁移约束、触发器、作业、登录、角色等。如果数据库位于不同的主机上,则可以使用连接它们并使用四个名称表示法来引用远程实例


至于处理大约200个表,您需要使用动态SQL来创建语句,因为您不能在动态SQL中提供表名作为变量。表列表可以来自或

,无需花费$,您可以使用语法-前提是INTO子句中指定的表在目标数据库中不存在:

SELECT *
  INTO new_db.dbo.table
  FROM old_db.dbo.table
但这不会迁移约束、触发器、作业、登录、角色等。如果数据库位于不同的主机上,则可以使用连接它们并使用四个名称表示法来引用远程实例


至于处理大约200个表,您需要使用动态SQL来创建语句,因为您不能在动态SQL中提供表名作为变量。表列表可以来自或

@marc:我只想将所有数据从一个数据库复制到另一个数据库是-获取SQL数据比较这项工作-这是做这项工作的最佳工具。@marc有没有免费的方法?没有-或者你花了很多时间,这不值得吗?,或者你可以找个工具帮忙you@marc你绝对是对的,但我需要告诉我的老板,他要花400美元才能复制一些tables@marc:我只想将所有数据从一个数据库复制到另一个数据库是-获取该工作的SQL数据比较-这是执行此操作的最佳工具。@marc有没有免费的方法?没有-或者你花费了很多时间,这不值得吗?,或者你可以找个工具帮忙you@marc你肯定是对的,但我需要
o告诉我的老板,他必须支付400美元才能复制一些表。我只想将一个数据库中的所有内容复制到另一个数据库中。我只想将一个数据库中的所有内容复制到另一个SQL考官套件中。在包含900多个表的数据库中使用它,效果非常好!SQL考官套件。在包含900多个表的数据库中使用它,效果非常好!我只想把一个数据库中的所有数据复制到另一个数据库中。我想要一些快照!谢谢,我只想把一个数据库的所有数据复制到另一个数据库。我想要一些快照!谢谢