将存储过程从一个数据库复制到另一个数

时间:2010-07-15 20:11:53

标签: database sql-server-2008 sql-server-2005 import

我正在尝试将包含大量数据的数据库从SQL Server 2005复制到SQL Server 2008.我尝试使用复制数据库向导但无法使用向导,因为它们是两个不同的服务器2005和2008.所以我复制了所有的表使用SQL Server 2008中的“导入数据”向导。

我有大约1120个要复制的存储过程,所以在SQL Server 2005上我使用了Generate Script向导并创建了我可以在SQL Server 2008上运行的脚本(用于SP)。我在SQL Server 2008上运行了该脚本,但是仅创建了1082个程序,其中大部分都是由于依赖性问题而未创建的。现在我不确定1120 SP中没有创建的。

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

4 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:2)

为了找出缺少哪些存储过程并需要重新创建,您应该使用SQL diff工具,例如:

这需要花费一些钱才能获得许可证,但它们非常值得购买,并且可以为您节省大量的工作量,以确定需要做些什么。

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

答案 2 :(得分:0)

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

可能是登录还是其他?

为什么不进行备份并恢复数据库?

答案 3 :(得分:0)

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