将数据从一个数据库复制到另一个

时间:2009-07-16 04:48:16

标签: sql-server

我需要将数据从一个数据库复制到另一个数据库只有在表模式相同的情况下......一个程序可以做到这一点,但是它的工作量太多了吗?

4 个答案:

答案 0 :(得分:2)

答案 1 :(得分:2)

您可以在MSSQL 2005或2008中使用MSCP Server 2000的BCP实用程序或SSIS(SQL Server Integration Services)。

答案 2 :(得分:0)

如果架构相同,则从一个数据库中获取数据库转储,然后在另一个数据库中恢复。

其他选项是导出文件或Excel中的数据,然后将它们导入到其他数据库中。

另外,在第二个数据库中创建一个dblink并执行一个类似insert into ...的查询(从...中选择)

答案 3 :(得分:0)

粗略的解决方法:在SQL Server 2005及更高版本中,您可以编写直接INSERT ... SELECT语句(如果它们位于不同的SQL实例上,则使用链接服务器),然后将其包装在TRY / CATCH中块。如果它复制好,如果失败,则会捕获并管理错误。

将会出现更多问题,例如目标表是否有一个可以为空的或具有默认值的额外列,但它是一个开头。

- 添加此内容以回应您的评论 -

如何在一分钟内为所有表编写“INSERT ... SELECT”语句:

首先,每个命令都是这样的:

INSERT TargetDB.dbo.xxx select * from xxx

这确实使用SELECT *,但是因为你正在寻找完全匹配的表,这应该不是问题。接下来,要为当前选定的数据库中的每个用户定义表编写其中一个,请运行以下命令:

SELECT 'INSERT TargetDB.dbo.' + name + ' select * from ' + name
 from sys.tables

将“TargetDB”替换为目标数据库,运行,剪切并粘贴结果,然后在TRY / CATCH块中工作。