2009-07-16 220 views

回答

0

如果模式相同,则从一个数据库进行数据库转储并在其他数据库中进行恢复。

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

Otherway是在第二个数据库中创建DBLINK和执行像插入到一个查询...(从选择...)

+0

只会有一些表格会有相同的模式...我想复制这些表格中的数据,并留下其他人。 – 2009-07-16 04:54:14

2

您可以使用MSSQL Server 2000中BCP实用程序或SSIS(SQL Server集成服务)从MSSQL 2005或2008.

+0

我们有几个季度或每年运行的流程(并且做这些流程的人会忘记如何执行这些流程以及他们应该完成这些流程)。因此,我们建立了SSIS包(他们曾经被称为DTS)以一致的,可重复的方式完成它们。 – Tangurena 2009-07-17 18:30:37

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块中工作。

+0

但这将要求我写我所有的表的插入查询! – 2009-07-18 03:43:04

相关问题