Невозможно открыть базу данных, потому что это версия 782. Этот сервер поддерживает версию 706 и более ранние. Переход на более раннюю версию не поддерживается

84

Я создал образец базы данных с помощью SQL Server 2014 Express и добавил его в свое решение Windows Form. Если дважды щелкнуть по нему, чтобы открыть, я получаю эту ошибку.

Невозможно открыть базу данных, потому что это версия 782. Этот сервер поддерживает версию 706 и более ранние. Переход на более раннюю версию не поддерживается

Я использую Visual Studio 2013. Я действительно не понимаю, что я использую две последние версии продуктов Microsoft, и они несовместимы. Я что-то упускаю? Как я могу открыть эту базу данных?

введите описание изображения здесь

Омер К
источник
2
Вам нужно указать Visual Studio на свой экземпляр SQL Server 2014. Дело не в том, что они несовместимы, дело в том, что Visual Studio по умолчанию использует свой экземпляр 2012 года и не поддерживает базы данных с 2014 года. Причина, по которой он использует 2012 год по умолчанию: SQL Server 2014 не существовал, когда Visual Studio 2013 был выпущен.
Аарон Бертран
@AaronBertrand, спасибо. Как я могу указать VS на моем SQL Server 2014. Есть ли ссылка, которая поможет?
Omer K
5
Конечно, просто перестаньте указывать Visual Studio (и ваше приложение) на файл (используя AttachDBFileName). Предполагая, что база данных уже подключена к вашему локальному .\SQLEXPRESSэкземпляру, просто измените строки подключения, чтобы они указывали на этот сервер ( Data Source=.\SQLEXPRESS;Initial Catalog=OMERDENEME;...), и прекратите использованиеAttachDBFileName .
Аарон Бертран,

Ответы:

141

Попробуйте изменить Tools> Options> Database Tools> Data Connections> SQL Server Instance Name.

По умолчанию для VS2013 установлено (LocalDB)\v11.0.

(LocalDB)\MSSQLLocalDBНапример, изменение на, похоже, работает - больше нет ошибки версии 782.

user1723033
источник
2
У меня были аналогичные проблемы с Visual Studio 2013 Express для Интернета и Entity Framework 6. EF автоматически создавал файл MDF, но я не мог подключиться из VS при использовании (LocalDB)\v11.0. При изменении имени сервера (LocalDB)\MSSQLLocalDBэта ошибка о версии № исчезла.
wrschneider
3
Мне также пришлось изменить строку подключения в файле web.config на (LocalDB) \ MSSQLLocalDB
Роджер Харвест
11
В VS Studio 2015 по умолчанию используется (LocalDB) \ MSSQLLocalDB. Итак, в данном случае это не поможет
полезно Би
2
Мне пришлось перезапустить Visual Studio после изменения вышеупомянутой настройки
Манодж Аттал
1
@ Kun-yaoWang, вышеупомянутый комментарий, упомянутый полезнымBee, сработал для меня, и я использую VS 2015.
Манодж Аттал,
10

Попробуй поменять уровень совместимости , у меня работало.

Проверить, какой это уровень

USE VJ_DATABASE;
GO
SELECT compatibility_level
FROM sys.databases WHERE name = 'VJ_DATABASE';
GO

Затем сделайте его совместимым со старой версией

ALTER DATABASE VJ_DATABASE
SET COMPATIBILITY_LEVEL = 110;   
GO
  • 100 = Sql Server 2008
  • 110 = Сервер SQL 2012
  • 120 = Сервер SQL 2014

По умолчанию Sql Server 2014 изменит совместимость версий db только на 2014, с помощью которого @@ versionвы сможете определить, какая версия Sql Server.

Затем запустите приведенную выше команду, чтобы изменить ее версию, которая у вас есть.

Дополнительный шаг: убедитесь, что доступность БД не сброшена, сделайте это, щелкнув правой кнопкой мыши свойства папки и базы данных. (убедитесь, что у вас есть права, чтобы вам не было отказано в доступе)


источник
2

Для меня использование решения, предоставленного codedom , не сработало. Здесь мы можем только изменить версию совместимости существующей базы данных.

Но актуальная проблема заключается в том, что версия внутренней базы данных не совпадает из-за изменений в формате хранения.

Ознакомьтесь с более подробной информацией о версии SQL Server и их внутренней версии db и уровне совместимости с Db здесь. Было бы хорошо, если бы вы создали свою базу данных с использованием версии SQL Server 2012 Express или ниже. Или начните использовать предварительную версию Visual Studio 2015.

Aamol
источник
2

Это решение решает мою проблему: (от: https://msdn.microsoft.com/en-us/library/ms239722.aspx )

Чтобы навсегда прикрепить файл базы данных (.mdf) из узла подключения к данным

  1. Откройте контекстное меню для подключений к данным и выберите «Добавить новое подключение».

    Откроется диалоговое окно « Добавить соединение».

  2. Нажмите кнопку " Изменить" .

    Откроется диалоговое окно « Изменить источник данных ».

  3. Выберите Microsoft SQL Server и нажмите кнопку ОК .

    Снова появляется диалоговое окно « Добавить соединение » с Microsoft SQL Server (SqlClient), отображаемым в текстовом поле « Источник данных» .

  4. В поле «Имя сервера» введите или перейдите к пути к локальному экземпляру SQL Server. Вы можете ввести следующее:

    • "." для экземпляра по умолчанию на вашем компьютере.
    • «(LocalDB) \ v11.0» для экземпляра SQL Server Express LocalDB по умолчанию.
    • ". \ SQLEXPRESS" для экземпляра SQL Server Express по умолчанию.

    Для получения информации о SQL Server Express LocalDB и SQL Server Express см. Обзор локальных данных .

  5. Выберите « Использовать проверку подлинности Windows» или « Использовать проверку подлинности SQL Server» .

  6. Выберите « Прикрепить файл базы данных» , « Обзор» и откройте существующий файл .mdf.

  7. Нажмите кнопку ОК .

    Новая база данных появится в обозревателе серверов. Он будет оставаться подключенным к SQL Server, пока вы не отключите его явно.

Сайед Аболфазл Фатеми
источник
1
Это решение сработало для меня. Я изменил настройку подключения по умолчанию для Vs2012 в tool-option-database tools-> data connection -> sql server name = (LocalDB) \ MSSQLLocalDB. а затем выполнил вышеуказанный шаг. и на шаге 4 я ввел имя экземпляра ny sql 2014 как (LocalDB) \ MSSQLLocalDB. и все в порядке. Спасибо, бро.
abdul hameed
1

Другое решение - перенести базу данных, например, на 2012 год, когда вы «экспортируете» базу данных, например, из Sql Server manager 2014. Это делается в меню Задачи-> генерировать сценарии при щелчке правой кнопкой мыши по БД. Просто следуйте этой инструкции:

https://www.mssqltips.com/sqlservertip/2810/how-to-migrate-a-sql-server-database-to-a-lower-version/

Он генерирует сценарии со всем, а затем в вашем диспетчере SQL-сервера, например, 2012 запускает сценарий, как указано в инструкции. Я успешно выполнил тест.

Наха
источник
0

Я использую VS 2017. По умолчанию имя экземпляра SQL Server - (LocalDB) \ MSSQLLocalDB. Однако, понизив уровень совместимости базы данных до 110, как в ответе @ user3390927, я мог прикрепить файл базы данных в VS, выбрав имя сервера как «localhost \ SQLExpress».

андроид
источник