2010-07-15 165 views
1

我想从SQL Server 2005到SQL Server 2008的庞大数据复制数据库。我尝试使用复制数据库向导,但无法使用向导,因为它们是两个不同的服务器2005所以我使用从SQL Server 2008导入数据向导复制所有表。复制存储过程从一个数据库到其他

我有大约1120个存储过程被复制,所以在SQL Server 2005上我使用了生成脚本向导并创建了脚本(对于SP)我可以在SQL Server 2008上运行。我在SQL Server 2008上运行了该脚本,但只创建了1082个过程,其中大多数过程因相关性问题而未创建。现在我不确定1120 SP是不是创建的。

你能就如何解决这种情况提出建议吗?

回答

3

SQL Server 2008可以从SQL Server 2005备份文件进行还原。你为什么不做一个快速的备份和恢复操作?如果你不想要整个事情,只需备份和恢复到临时SQL 2008数据库,然后从那里复制你需要的对象。

0

什么样的依赖性问题? 大多数时候它只会抱怨依赖性问题,例如,如果您尝试从尚未创建的SP执行SP。但它仍然会被创建。

它可能是登录或类似的?

为什么不只是做一个备份和恢复数据库?

+0

同意。另外,就依赖性问题而言,有时您只需反复运行脚本,直至创建所有依赖对象。听起来很诡异,但蛮力方法通常可以与SQL DDL一起工作。 – mattmc3 2010-07-15 20:21:35

0

分离SQL 2005数据库,将数据库的.mdf和.ldf文件复制到SQL 2008数据文件夹,然后附加数据库会不会更简单?

+2

必须使数据库脱机以进行分离/附加 - 不必备份/恢复 – 2010-07-15 20:20:41

2

为了找出存储过程缺少哪些,需要重新创建,你应该使用一个SQL比较工具,是这样的:

那些确实花了一点钱才能获得许可证,但他们非常值得购买价格,并且可以为您节省无数工作时间,试图找出需要完成的工作。

这两个工具都可以比较两个数据库(甚至是不同的版本),并且可以创建更新脚本以使它们具有相同的对象,或者甚至可以直接在这些工具中执行同步,如果您愿意这样做。

+1

便宜的方法是使用Microsoft.SqlServer.Management .NET库编写自己的比较器。 – mattmc3 2010-07-15 21:15:51

+0

@ mattmc3:是的 - 但你仍然需要计算你的努力,你的时间和你需要的时间,直到你像这些商业产品一样无缺陷...... – 2010-07-15 21:16:48

相关问题