Sql server 2008 express 如何将数据库备份文件(.bak)从SQL Server 2012恢复到SQL Server 2008 Express?

Sql server 2008 express 如何将数据库备份文件(.bak)从SQL Server 2012恢复到SQL Server 2008 Express?,sql-server-2008-express,sql-server-2012,Sql Server 2008 Express,Sql Server 2012,最初来自SQL Server 2008的数据库已还原到SQL Server 2012中。已从SQL Server 2012进行备份,我正在尝试在本地SQL Server 2008 Express上还原该备份。但是,我收到一个错误“指定的强制转换无效”(SQLManagerUI) 我已经从2012年生成了一个SQL脚本,并对其进行了设置,以便生成与SQL Server 2008兼容的SQL脚本。但是,它是一个很大的sql文件,大约700mb 我记得以前我曾尝试在本地SQLExpress上运行一个这

最初来自SQL Server 2008的数据库已还原到SQL Server 2012中。已从SQL Server 2012进行备份,我正在尝试在本地SQL Server 2008 Express上还原该备份。但是,我收到一个错误“指定的强制转换无效”(SQLManagerUI)

我已经从2012年生成了一个SQL脚本,并对其进行了设置,以便生成与SQL Server 2008兼容的SQL脚本。但是,它是一个很大的sql文件,大约700mb

我记得以前我曾尝试在本地SQLExpress上运行一个这样大小的脚本,但也遇到了一个错误


有没有办法将“大型”数据库从SQL Server 2012导入SQL Server 2008 Express?

感谢Marc和Aaron提供的答案

快速的答案是否定的,不可能将备份文件从较高版本还原到较低版本的SQL Server

解决方法是生成脚本来创建数据库

您可以将脚本生成目标设置为较低版本

更多信息请参见以上评论

链接:


添加一些可能对人们有用的东西

在SSMS中使用脚本向导编写大型数据库脚本时,检查执行顺序并愿意手动重新安排非常重要。较旧版本的SSM有这个问题,因为它们(可能)依赖于有一个

在这种情况下,我发现真正有用的工具是可以用来读取数据库备份和生成正确执行顺序的脚本的工具


Aaron提到的关于使用特定于更高版本的函数的事情是所有方法都无法捕捉到的

比使用SSMS脚本向导更好的选择是使用Codeplex上类似的工具,称为SQL数据库迁移向导-。您希望最新版本v4.x与SQL Server 2012配合使用

该工具最初用于在SQL Server和Azure之间迁移数据库。但是,该工具在SQL Server和SQL Server之间工作得一样好。诀窍是在高级选项中将SQL Server而不是Azure设置为目标


这是一个比SSMS脚本向导更好的选项,因为它使用BCP进行数据传输,而不是TSQL,因此效率更高。

在SQL Server中,您永远无法“返回”版本。如果在2012版本中备份数据库,则无法将该备份还原到2008版本。只是不起作用-也没有技巧或方法:-(哦,不。谢谢Marc。我将尝试运行生成的sql脚本,以将数据库副本获取到本地sql express中。请参见此处我的答案:即使兼容模式设置为sql 2005?