Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

The database 'xxx' cannot be opened because it is version 904

Tags:

sql-server

I can't attach my database. When I try to attach a database in SQL Server Management Studio, I get this error:

The database 'C:\FILES\ACCOUNTING.MDF' cannot be opened because it is version 904. This server supports version 852 and earlier. A downgrade path is not supported. Could not open new database 'C:\FILES\ACCOUNTING.MDF'. CREATE DATABASE is aborted. (.Net SqlClient Data Provider)

and I have tried these commands:

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

SqlLocalDB.exe delete "MSSQLLocalDB"

SqlLocalDB.exe create "MSSQLLocalDB"

but it still has an error

like image 937
Mohammad Ghoncheh Avatar asked Oct 12 '25 09:10

Mohammad Ghoncheh


1 Answers

You CANNOT do this - you cannot attach/detach or backup/restore a database from a newer version of SQL Server (v904 = SQL Server 2019) down to an older version (v852 which is SQL Server 2016) - the internal file structures are just too different to support backwards compatibility.

You can either get around this problem by

  • using the same version of SQL Server on all your machines - then you can easily backup/restore databases between instances

  • otherwise you can create the database scripts for both structure (tables, view, stored procedures etc.) and for contents (the actual data contained in the tables) either in SQL Server Management Studio (Tasks > Generate Scripts) or using a third-party tool

  • or you can use a third-party tool like Red-Gate's SQL Compare and SQL Data Compare to do "diffing" between your source and target, generate update scripts from those differences, and then execute those scripts on the target platform; this works across different SQL Server versions.

like image 195
marc_s Avatar answered Oct 15 '25 16:10

marc_s