Я пытаюсь прикрепить файл базы данных в SQL Server. Я получаю ошибку ниже. Та же ошибка, что и при попытке подключить базу данных из Visual Studio. Я использую Visual Studio 2013 и SQL Server 2014 Management Studio.

Моя строка подключения:

<add name="Sample"  
     connectionString="Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\Users\M\Desktop\SampleApplication1\App_Data\Sample.mdf;Initial Catalog=SampleDBContext;Integrated Security=True;" 
     providerName="System.Data.SqlClient"/>

Ошибка:

База данных «образец» не может быть открыта, потому что это версия 851. Этот сервер поддерживает версию 782 и более ранние. Переход на более раннюю версию не поддерживается. Не удалось открыть новую базу данных «Образец». CREATE DATABASE прервано.

enter image description here

И вот экземпляр SQL Server по умолчанию установлен в Visual Studio.

enter image description here

13
Musakkhir Sayyed 30 Апр 2016 в 09:52

3 ответа

Лучший ответ

Вы НЕ МОЖЕТЕ сделать это - вы не можете прикрепить / отсоединить или создать резервную копию / восстановить базу данных от более новой версии SQL Server до более старой версии - внутренние файловые структуры слишком разные, чтобы поддерживать обратную совместимость. Очевидно, ваша база данных взята из предварительной версии SQL Server 2016 (внутренняя версия: 852), а движок, к которому вы пытаетесь ее подключить, - это SQL Server 2014 (внутренняя версия: 782).

Вы можете обойти эту проблему,

  • используя одну и ту же версию SQL Server на всех ваших компьютерах, вы можете легко создавать резервные копии / восстанавливать базы данных между экземплярами

  • в противном случае вы можете создать сценарии базы данных как для структуры (таблицы, представления, хранимые процедуры и т. д.), так и для содержимого (фактические данные, содержащиеся в таблицах) либо в SQL Server Management Studio (Tasks > Generate Scripts), либо с помощью третьей инструмент для вечеринок

  • или вы можете использовать сторонний инструмент, такой как инструмент SQL Сравнение и Сравнение данных SQL, чтобы сделать " «различать» между вашим источником и целью, генерировать сценарии обновления с учетом этих различий, а затем выполнять эти сценарии на целевой платформе; это работает в разных версиях SQL Server.

20
marc_s 30 Апр 2016 в 06:56

Эта ссылка Microsoft может решить вашу проблему, если вы все еще используете Visual Studio 2015 и видите эту ошибку - приведенный выше ответ является частью ответа. (megamaiku) Ответ «сгенерировать сценарии» от Mark_S будет работать, если у вас нет проблем с подключением / доступом к базе данных. Если я помню, сравнение SQL довольно дорогое, но это отличное решение, опять же, если предположить, что вы можете подключить базу данных, созданную вашим приложением Visual Studio.
Аналогичная проблема возникает с Visual Studio 2017 и SQL Server 2017, за исключением того, что вы видите 852/856 как проблему с версией.

После перемещения базы данных измените строку web.config connectionString в соответствии с вашим сервером; (localdb) \ MSSQLLocalDB или, возможно, localhost в зависимости от того, что вы используете (SQL 2016/2017/2019).

<add name="DefaultConnection"
     connectionString="Data Source=(localdb)\MSSQLLocalDB;myDB.mdf;Initial Catalog=MyDBName;Integrated Security=True"
     providerName="System.Data.SqlClient"/>

ИЛИ

<add name="DefaultConnection"
     connectionString="Data Source=localhost;myDB.mdf;Initial Catalog=MyDBName;Integrated Security=True"
     providerName="System.Data.SqlClient"/>

В старой статье объясняется, как извлекать части из базы данных по одному, и если вам повезет, и он все еще работает (так было десять лет назад - разделите, а затем снова соедините части), вы сможете получить то, что вам нужно - более новая версия восстановлена до более старой версии. Я не могу найти ссылку на трюк, но вместо того, чтобы писать сценарий всей вашей базы данных, есть способ восстановить, восстановив заголовок (восстановить только заголовок), а затем, когда заголовок будет на вашем сервере, разрешения и т. Д. совпадают, вы можете восстановить эту базу данных из более новой резервной копии.
Однако сценарий генерации менее запутан и более популярен.

0
Jamie 30 Июл 2019 в 21:16

У меня возникла эта проблема, когда я следил за старым Руководство по Pluralsight MVC4.

В курсе меня просили использовать v11.0, но у меня была версия 2015 года. Я открыл обозреватель объектов SQL Server, посмотрел на разные версии LocalDB и взял имя той, в которой была моя база данных (щелкните правой кнопкой мыши «Переименовать»).

enter image description here

Затем я вставил имя в окно «Добавить соединение» под «Имя сервера». Нажал «Обновить», и вот оно что. Надеюсь, это поможет кому-нибудь.

enter image description here

0
megamaiku 16 Фев 2017 в 00:06