Ошибка 948 sql server как исправить

Yesterday I installed SQL Server 2008 on my laptop (Windows 7 64 bit), I need to attach a .mdf to the server, but when I try to do this, I get this error:

Attach Database failed for server ‘prince/sqlexpress’ (Microsoft.SqlServer.smo)

ADDITIONAL INFORMATION:
1.An Exception Occured while executing a Transact Sql statement or Batch (Microsoft.SqlServer.connectioninfo)

2.Unable to open the Physical file Operating system error 5: “5(Access is denied.)”. (Microsoft SQL Server, Error: 5120)

With the help of Internet, I found some solution.

1.Start SQL Server manager as Administrator (right-click on the program, choose “Start as administrator”):

But I still got the same error.

That .mdf file does have have permission, so I moved into external drive (pendrive because my system have only C: drive, yet no partition I have done ) .

Then I got another error,

Attach database failed for Server ‘PrinceSQLEXPRESS’.
(Microsoft.SqlServer.Smo) ADDITIONAL INFORMATION:

An exception occurred while executing a Transact-SQL statement or
batch. (Microsoft.SqlServer.ConnectionInfo)

The database ‘Databasename’ cannot be opened because it is version
655. This server supports version 611 and earlier. A downgrade path is not supported. Could not open new database ‘Databasename’. CREATE
DATABASE is aborted. (Microsoft SQL Server, Error: 948)

I use the Query –

“select @@version;”

I got the Output as

“Microsoft SQL Server 2005 – 9.00.3042.00 (Intel X86) Feb 9 2007
22:47:07 Copyright (c) 1988-2005 Microsoft Corporation Express Edition
on Windows NT 6.1 (Build 7600: )”

what shall i do? But i installed SQL Server 2008. how do i change that?
How to solve this error, please help out this problem, If you have any solution please post it.

These past weeks the number of errors I have been getting when attaching a database has been far too many. But the best part of this learning experience is that I get to write about them one after another. There are no right or wrong answers sometimes, but am learning every time. Here is an error which is related to a downgrade path not supported.

Fix Error 948 – A Downgrade path is not supported

Here is the error I received while I was trying to attach database using below command:

USE [master]
GO
CREATE DATABASE [SQLAuthority] ON 
( FILENAME = N'C:Program FilesMicrosoft SQL ServerMSSQL13.SQL2016MSSQLDATASQLAuthority.mdf' ),
( FILENAME = N'C:Program FilesMicrosoft SQL ServerMSSQL13.SQL2016MSSQLDATASQLAuthority_log.ldf' )
 FOR ATTACH
GO

SQL SERVER - Fix Error - 948 A downgrade path is not supported. The database cannot be opened because it is version. down-attach-error-01

Error message:

Msg 1813, Level 16, State 2, Line 3
Could not open new database ‘SQLAuthority’. CREATE DATABASE is aborted.
Msg 948, Level 20, State 1, Line 3
The database ‘SQLAuthority’ cannot be opened because it is version 852. This server supports version 782 and earlier. A downgrade path is not supported.

The second part of the message was strange and was the first time I was seeing. I found a command on the internet to read MDF file version:

DBCC CHECKPRIMARYFILE('C:Program FilesMicrosoft SQL
ServerMSSQL13.SQL2016MSSQLDATASQLAuthority.mdf',2)

SQL SERVER - Fix Error - 948 A downgrade path is not supported. The database cannot be opened because it is version. down-attach-error-02

So, we know that version is 802 which is for SQL Server 2016. When I ran select @@version on my server I found that I was trying to attach it to lower versions of SQL.

In short, this error is expected when we try to attach file from higher version of SQL to lower version of SQL. We cannot attach/detach or backup/restore a database from a newer version of SQL Server down to an older version – the internal file structures are just too different to support backwards compatibility.

Here is what I was able to find on the internet.

SQL Server Version Internal Database Version
SQL Server 2016 852
SQL Server 2014 782
SQL Server 2012 706
SQL Server 2008 R2 660/661
SQL Server 2008 655
SQL Server 2005 611/612
SQL Server 2000 539
SQL Server 7 515

Do you know the steps to move to older version? What have you done before for such errors? Do feel free to share with all via the comments section below.

Reference: Pinal Dave (https://blog.sqlauthority.com)

Related Posts

  • Remove From My Forums
  • Question

  • TITLE: Microsoft SQL Server Management Studio
    ——————————

    Attach database failed for Server ‘DELL-ZAKWAN’.  (Microsoft.SqlServer.Smo)

    For help, click: https://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=16.100.37971.0&EvtSrc=Microsoft.SqlServer.Management.Smo.ExceptionTemplates.FailedOperationExceptionText&EvtID=Attach+database+Server&LinkId=20476

    ——————————
    ADDITIONAL INFORMATION:

    An exception occurred while executing a Transact-SQL statement or batch. (Microsoft.SqlServer.ConnectionInfo)

    ——————————

    The database ‘MnrAccDBTR’ cannot be opened because it is version 904. This server supports version 869 and earlier. A downgrade path is not supported.
    Could not open new database ‘MnrAccDBTR’. CREATE DATABASE is aborted. (Microsoft SQL Server, Error: 948)

    • Edited by

      Sunday, June 28, 2020 3:01 PM

SQL Server Error : 948 Details

SQL Server Error: 948
Severity: 20
Event Logged or not: Yes
Description:
The database ‘%.*ls’ cannot be opened because it is version %d. This server supports version %d and earlier. A downgrade path is not supported.
Severity 20 Description:
Indicates that a statement has encountered a problem. Because the problem has affected only the current task, it is unlikely that the database itself has been damaged.

Msg 1813, Level 16, State 2, Line 4
Could not open new database ‘Database’. CREATE DATABASE is aborted.
Msg 948, Level 20, State 1, Line 4
The database ‘Database’ cannot be opened because it is version 869. This server supports version 852 and earlier. A downgrade path is not supported.

For example in simple words say

You are trying to restore/attach database/backup which been created with SQL Server 2008, but the actual version of SQL Server you are trying to attach it to is SQL Server 2005.

Now, how to fix microsoft sql server error 948 or how to solve microsoft sql server error 948? Keep reading…

Reading sql server error log location from SQL Query

Identifying SQL Server Error Log File used by SQL Server Database Engine can be done by reading SQL Server Error Logs. DBA can execute the XP_READERRORLOG extended stored procedure to read the SQL Server Error Log and search for its location used by the instance of SQL Server.

USE master
Go
xp_readerrorlog 0, 1, N'Logging SQL Server messages in file', NULL, NULL, N'asc'
Go

The parameters for XP_READERRRORLOG are:
1. Value of error log file we would like to read. values are 0 = current, 1 = last one before current, 2 = second last before current etc…
2. Log file type:- 1 or NULL = error log, 2 = SQL Agent log
3. Search string 1:- String one you want to search for
4. Search string 2:- String two you want to search for to further refine the results
5. start time for Search
6. end time for search
7. Sort order for search results:- N’asc’ = ascending, N’desc’ = descending

By default, we have 6 Server Error Logs kept but we can increase the number of SQL Server Error Logs from the default value of six.

For other ways to read and find error log location please our artcile https://sqlserver-dba.co.uk/error-log/sql-server-identify-location-of-the-sql-server-error-log-file.html

Solution for Resolving the Error

This error is expected when we try to attach file from higher version of SQL Server to lower version of SQL. We cannot attach/detach or backup/restore a database from a newer version of SQL Server down to an older version. This is because they have a different internal file structures which does not support backwards compatibility.

Here is what I was able to find on the internet.

SQL Server Version Internal Database Version
SQL Server 2016 852
SQL Server 2014 782
SQL Server 2012 706
SQL Server 2008 R2 660/661
SQL Server 2008 655
SQL Server 2005 611/612
SQL Server 2000 539
SQL Server 7 515

For more build details go to “https://sqlserverbuilds.blogspot.com/2014/01/sql-server-internal-database-versions.html”

For example in simple words say:

You are trying to restore/attach database/backup which been created with SQL Server 2008, but the actual version of SQL Server you are trying to attach it to is SQL Server 2005.

Here solution would be  : you are trying to attach a 2008 Database (655) to a 2005 instance (611); that cannot work, obviously. so solutions are:

– either update your 2005 instance to a 2008 one

– or install another instance on the same server (a 2008 one)

– or use any other server which has 2008 already installed.

Additional information:

SQL server error 948 can occur in different versions 

  1. in sql 2008 r2 error is ” sql server error 948 version 661
  2. error 948 in sql server 2008 r2
  3. in sql 2016 error is ” sql server error 948 version 852 “
  4. in sql 2012 error is ” sql server error 948 version 706 “
  5. in sql 2017 error is “ sql server error 948 version 869
  6. or simply like ” microsoft sql server 2008 r2 error 948
  7. sql server 2012 error 948,
  8. sql server 2005 error 948,

SQL Server Error Code and solution summary

SQL Server Error: 948
Severity: 20
Event Logged or not: Yes
Description:
The database ‘%.*ls’ cannot be opened because it is version %d. This server supports version %d and earlier. A downgrade path is not supported.

In short microsoft sql server error 948 solution would be to make sure database which is to be restored is of same version or lower  version than SQL Server we are trying to restore.

Вопрос:

Вчера я установил SQL Server 2008 на своем ноутбуке (Windows 7 64 бит), мне нужно подключить .mdf к серверу, но когда я попытаюсь это сделать, я получаю эту ошибку:

Не удалось привязать базу данных к серверу “принц/sqlexpress” (Microsoft.SqlServer.smo)

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ: 1.An Исключение При выполнении инструкции Transact Sql или пакета (Microsoft.SqlServer.connectioninfo)

2.Unable для открытия физического файла Ошибка операционной системы 5: “5 (Доступ запрещен.)”. (Microsoft SQL Server, ошибка: 5120)

С помощью Интернета я нашел какое-то решение.

1. Запустите диспетчер SQL Server в качестве администратора (щелкните правой кнопкой мыши по программе, выберите “Начать как администратор”):

Но у меня все еще была такая же ошибка.

У этого .mdf файла есть разрешение, поэтому я перешел на внешний диск (pendrive, потому что у моей системы есть только диск C:, но никакого раздела я не сделал).

Затем я получил еще одну ошибку,

Не удалось привязать базу данных к серверу “ПринцSQLEXPRESS”.
(Microsoft.SqlServer.Smo) ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ:

Исключение произошло при выполнении инструкции Transact-SQL или партии. (Microsoft.SqlServer.ConnectionInfo)

База данных “Databasename” не может быть открыта, потому что это версия 655. Этот сервер поддерживает версию 611 и ранее. Путь вниз не поддерживается. Не удалось открыть новую базу данных “Databasename”. CREATE DATABASE прервана. (Microsoft SQL Server, ошибка: 948)

Я использую Query –

“select @@version;”

Я получил результат как

“Microsoft SQL Server 2005 – 9.00.3042.00 (Intel X86) 9 февраля 2007 г. 22:47:07 Copyright (c) 1988-2005 Microsoft Corporation Express Edition в Windows NT 6.1 (Build 7600:)”

что мне делать? Но я установил SQL Server 2008. Как мне это изменить? Как решить эту ошибку, пожалуйста, помогите решить эту проблему. Если у вас есть решение, отправьте его.

Лучший ответ:

Сообщение очень ясно: файл MDF базы данных имеет версию 655. Ваш сервер понимает версию 611. Это означает, что, несмотря на ваши требования об обратном, вы подключены к SQL Server 2005. Установите SQL Server 2008, подключитесь к нему и прикрепите свою базу данных. Во время процесса установки обратите внимание на выбранное имя экземпляра и убедитесь, что вы подключаетесь к этому экземпляру. Вы также можете проверить, какие экземпляры вы установили, посмотрите, какие услуги у вас есть в вашей системе. MSSQLSERVER будет экземпляром по умолчанию, MSSQL$<instancename> будет именованным экземпляром. Используйте любой инструмент запросов SCM, чтобы узнать, какие службы вы установили, например. sc.exe.

Ответ №1

Microsoft SQL Server Management Studio нуждается в правах администратора для присоединения базы данных в Windows 7. Если вы выполняете ее напрямую, чтобы получить ошибку 5120. Исправьте это выполнение значка Management Studio с помощью правой кнопки мыши и выберите выполнение как администратор. Удачи.

Ответ №2

Наконец, я решил свою проблему,

Остановите службу SQLEXPRESS и удалите все компоненты, связанные с SQL-сервером 2005. Затем откройте редактор реестра. Перейдите в HKEY_LOCAL_MACHINE – ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ – MICROSOFT – MICROSOFT SQL SERVER-DELETE папку 90. Затем снова переустановите SQL Server 2008 и создайте новый instanse для сервера 2008 года. Теперь он работает, я могу подключить файл mdf.

Добавить комментарий