将SQL Server 2008降级为SQL Server 2005

时间:2009-05-11 19:33:25

标签: sql-server-2005 sql-server-2008 database-backups downgrade

从SQL Server 2008备份数据库,然后将其导入SQL Server 2005是否有任何问题?我已升级到SQL Server 2008,但2008年似乎太成问题所以现在我想降级。这样做有什么问题吗?

4 个答案:

答案 0 :(得分:8)

好吧,您将无法将2008备份还原到SQL 2005服务器。

最简单的方法是使用“生成SQL Server脚本”向导来创建可在SQL 2005上运行以创建数据库的脚本(包括架构和数据)。见http://www.devx.com/dbzone/Article/40531

但回到最初的问题:你对SQL 2008有什么问题?

答案 1 :(得分:0)

另一种方法是通过对象资源管理器连接到两台服务器,并将数据从一台服务器导入另一台服务器。

但是,执行此操作时,某些内容无法正确传输。例如,我不得不手动重置主键和外键设置,以及自动增量设置。但是,为了让所有数据都能正常运行,这是一个很小的代价。

答案 2 :(得分:0)

我会同意这是什么问题?如果它是关于应用程序的东西,你能不能在SQL 2005兼容模式下运行数据库。如果您必须迁移到2005年,则无法将数据库从08恢复到05。

如果您的数据库大于50mb左右,我将使用脚本生成向导编写数据库模式脚本,编写所有密钥,索引,触发器,排序规则以及没有数据的任何全文索引。只需记住检查sql 2005版本选项的脚本。运行该脚本以在sql server 2005上创建新数据库。

如果您的表上有触发器,则需要在导入数据之前将其全部禁用。这些脚本将为您完成。 这些将为您做到这一点

-- Disable Triggers
While @i <= @MaxI
Begin
      Select @dsql =  'DISABLE Trigger ' + TriggerName + ' ON ' + TableName
      From @DisableTriggers
      Where MyRowCount = @i
      Exec sp_executesql @dsql
      Select @i = @i + 1
End

-- Enable Triggers
While @i <= @MaxI
Begin
      Select @dsql =  'Enable Trigger ' + TriggerName + ' ON ' + TableName
      From @DisableTriggers
      Where MyRowCount = @i
      Exec sp_executesql @dsql
      Select @i = @i + 1
End

然后使用导入/导出向导将数据导入数据库;根据我的经验,这比编写脚本快得多。

答案 3 :(得分:0)

您无法还原从SQL Server 2008获取的SQL Server数据库备份并在SQL Server 2005上还原它,因为Microsoft不支持此操作。要了解更多无法将数据库从较高版本还原到较低版本的原因,请阅读以下 article 。如果要降级数据库,则可以使用SQL Server Integration Services。以下 article 中提到了将SQL Server 2008数据库降级为SQL Server 2005的示例。