Sql server 数据库';xxx和x27;无法打开,因为它是版本904

Sql server 数据库';xxx和x27;无法打开,因为它是版本904,sql-server,Sql Server,我无法连接我的数据库。尝试在SQL Server Management Studio中连接数据库时,出现以下错误: 无法打开数据库“C:\FILES\ACCOUNTING.MDF”,因为它是版本904。此服务器支持版本852和更早版本。不支持降级路径。无法打开新数据库“C:\FILES\ACCOUNTING.MDF”。创建数据库已中止。(.Net SqlClient数据提供程序) 我试过这些命令: cd "C:\Program Files\Microsoft SQL Server\130\Loc

我无法连接我的数据库。尝试在SQL Server Management Studio中连接数据库时,出现以下错误:

无法打开数据库“C:\FILES\ACCOUNTING.MDF”,因为它是版本904。此服务器支持版本852和更早版本。不支持降级路径。无法打开新数据库“C:\FILES\ACCOUNTING.MDF”。创建数据库已中止。(.Net SqlClient数据提供程序)

我试过这些命令:

cd "C:\Program Files\Microsoft SQL Server\130\LocalDB\Binn"

SqlLocalDB.exe delete "MSSQLLocalDB"

SqlLocalDB.exe create "MSSQLLocalDB"

但它仍然有一个错误

您无法执行此操作-您无法从较新版本的SQL Server(v904=SQL Server2019)连接/分离或备份/恢复数据库,直至较旧版本的SQL Server(v852,即SQL Server2016)-内部文件结构差异太大,无法支持向后兼容性

你可以通过以下两种方法来解决这个问题

  • 在所有计算机上使用相同版本的SQL Server—这样您就可以轻松地在实例之间备份/恢复数据库

  • 否则,您可以在SQL Server Management Studio(
    Tasks>Generate scripts
    )或使用第三方工具为结构(表、视图、存储过程等)和内容(表中包含的实际数据)创建数据库脚本

  • 或者您可以使用第三方工具,如Red Gate,在源和目标之间进行“差异化”,根据这些差异生成更新脚本,然后在目标平台上执行这些脚本;这适用于不同的SQL Server版本


出现问题陈述中的错误消息是因为SQL Server数据库文件(*.mdf、*.ndf和*.ldf)和备份不向后兼容。向后兼容性是我们无法将从较高版本的SQL Server创建的数据库还原或附加到较低版本的SQL Server的原因。但是,有几个选项可以帮助我们将数据库从较高版本的SQL Server降级到较低版本的SQL Server。这些选择包括:

在SQL Server Management Studio中使用生成脚本向导 使用SQL Server集成服务 创建自定义脚本和BCP 在本技巧中,我们将使用SQLServerManagementStudio中的生成脚本向导

以下是我们需要遵循的基本步骤:

使用SSMS中的生成脚本向导,从更高版本的SQL Server为数据库架构和数据编写脚本。 连接到较低版本的SQL Server,并运行在上一步中生成的SQL脚本,以创建数据库架构和数据。 在下一节中,我将演示将SQL Server 2012数据库降级为SQL Server 2008 R2数据库的步骤

使用SSMS生成脚本向导降级SQL Server数据库的步骤

步骤1在SQL Server上为OUTLANDER数据库的架构编写脚本 2012实例(IITCUK\DEV01),使用中的生成脚本向导 SSMS

在“对象资源管理器连接到IITCUK\DEV01”中,右键单击 OUTLANDER数据库,展开任务并选择“生成脚本…”

这将启动生成和发布脚本向导。单击“下一步”,跳过介绍屏幕,进入“选择对象”页面

在“选择对象”页面上,选择“为整个数据库和所有数据库对象编写脚本”选项,然后单击“下一步”进入“设置脚本选项”页面

n在“高级脚本选项”对话框中

将服务器版本的脚本设置为SQL Server 2008 R2(或您想要的任何版本) 在表/视图选项下,将脚本触发器、脚本索引和脚本主键设置为True 并将数据类型设置为脚本模式和数据-最后一个选项很关键,因为这是生成每个表的数据的方法

完成后,单击“确定”关闭“高级脚本选项”对话框并返回“设置脚本选项”页面。在“设置脚本选项”页面中,单击“下一步”继续进入“摘要”页面

查看“摘要”页面上的选择后,单击“下一步”生成脚本

成功生成脚本后,选择“完成”按钮关闭“生成和发布脚本”向导

步骤2连接到SQL Server 2008 R2实例 (IITCUK\SQLSERVER2008),然后运行 在步骤1中生成,以创建OUTLANDER数据库模式和数据

在对象资源管理器中连接到IITCUK\SQLServer2008,然后在SQL Server中 Management Studio,打开在步骤1中保存的SQL Server脚本

修改脚本,以指定OUTLANDER数据库数据和日志文件的正确位置。完成后,运行脚本在IITCUK\SQLServer2008实例上创建OUTLANDER数据库

成功执行后,刷新对象资源管理器中的数据库文件夹。如下图所示,OUTLANDER数据库已成功降级

注释 使用此方法时,有几件事需要注意

此解决方案创建一个大型SQL文件,该文件包含用于创建数据库对象的脚本,还可以为表中的数据插入语句。 对于大型数据库,如果同时编写模式和数据的脚本,SQL文件可能会变得非常大,并且很难加载到编辑器中。此外,如果文件太大,您可能会从编辑器中收到与内存相关的错误消息。 对于1GB或更大的大型数据库,如果这种方法不起作用,那么您应该考虑使用SSI迁移数据库,或者创建自定义脚本来编写对象脚本,并BCP输出每个表的数据。您可以使用此生成脚本向导仅生成不包含数据的架构,并使用SSI或BCP导出和导入数据。 此方法适用于SQL Server 2017到SQL Server 2005。一些脚本操作