从 SQL Server 2008 备份数据库,然后将其导入 SQL Server 2005 是否有任何问题?我已经升级到 SQL Server 2008,但是 2008 似乎问题太大,所以现在我想降级。这样做有什么问题吗?
4 回答
那么,您将无法将 2008 备份恢复到 SQL 2005 服务器。
最简单的方法是使用“生成 SQL Server 脚本”向导创建一个脚本(包括架构和数据),您可以在 SQL 2005 上运行该脚本来创建数据库。见http://www.devx.com/dbzone/Article/40531
但回到最初的问题:您在使用 SQL 2008 时遇到了什么问题?
另一种方法是通过对象资源管理器连接到两台服务器并将数据从一个导入到另一个。
但是,执行此操作时,有些内容无法正确传输。例如,我必须手动重置主键和外键设置,以及自动增量设置。不过,要让所有数据正常工作,这是一个很小的代价。
我同意这是什么问题?如果它与应用程序有关,你能不能在 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
然后使用导入/导出向导将数据导入您的数据库;根据我的经验,这比编写脚本要快得多。