How to fix Error 948 on Windows Server 2025 / Windows 11

Troubleshooting Guide: Error 948 – Database Version Downgrade Not Supported

Why This Error Happens

This error occurs when you attempt to attach or restore a database that was created or last written to by a newer version of SQL Server (such as SQL Server 2025) onto an older or mismatched instance that does not recognize that internal database version number. SQL Server embeds a specific internal version ID into the database file header each time the engine upgrades the schema catalog, and this ID is strictly forward-compatible only. Because Microsoft does not support downgrading database files, the destination instance rejects the mount operation entirely rather than risking data corruption.

Step-by-Step Resolution Guide

Step 1: Verify the Source and Target SQL Server Versions

  • Run SELECT @@VERSION; on both the original server and the destination server to confirm build numbers.
  • Check the specific internal database version by reviewing the error message details (e.g., “version 957” vs “version 904”).
  • Confirm whether the destination server is actually running SQL Server 2025 or an earlier release (2022, 2019, etc.) by checking Help > About in SSMS or querying SELECT SERVERPROPERTY('ProductVersion');.

Step 2: Upgrade the Destination Instance (Primary Fix)

  • Since downgrading is not supported, the only direct fix is to upgrade the destination SQL Server instance to match or exceed the source version.
  • Download the matching SQL Server 2025 Setup media and run Setup.exe from an elevated Command Prompt on Windows Server 2025 / Windows 11.
  • Select Upgrade during the installation wizard and apply the latest Cumulative Update (CU) from the Microsoft Update Catalog to ensure the internal database version aligns.
  • Reboot the server if prompted, then attempt the RESTORE DATABASE or sp_attach_db operation again.

Step 3: Export Data Using a Version-Agnostic Method (If Upgrade Isn’t Possible)

  • If you cannot upgrade the destination server, you cannot physically attach the .mdf/.ldf files; instead, extract the data logically.
  • On the newer (source) server, right-click the database in SSMS and select Tasks > Generate Scripts to export schema and data as a .sql file compatible with older engines.
  • Alternatively, use the Export Data-tier Application wizard to create a .bacpac file, then import it into the older instance via Import Data-tier Application.
  • For large databases, use the bcp utility to bulk copy table data into flat files, then re-import them on the target server.

Step 4: Validate File Paths and Permissions Post-Upgrade

  • After upgrading, ensure the SQL Server service account has Full Control permissions on the folder containing the .mdf and .ldf files (typically C:\Program Files\Microsoft SQL Server\MSSQL17.MSSQLSERVER\MSSQL\DATA).
  • Re-attempt the attach operation using SSMS Object Explorer > Databases > Attach, browsing to the correct file path.

Alternative or Verification Steps

  • Verify the fix: Run RESTORE VERIFYONLY FROM DISK = 'C:\Backups\YourDB.bak'; followed by a full RESTORE DATABASE command; successful completion without Error 948 confirms version compatibility.
  • Alternative workaround: If upgrading is not feasible, spin up a temporary SQL Server 2025 instance (even a free Developer Edition) solely to export the data via scripts or BACPAC, then decommission it once migration to the older server is complete.