Базу даних неможливо відкрити, оскільки це версія 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 помилок.


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 після зміни вищезазначеного налаштування
Manoj Attal

1
@ Kun-yaoWang, коментар, згаданий корисним Bee, працював у мене, і я використовую VS 2015.
Manoj Attal

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 Server 2012
  • 120 = Sql Server 2014

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

Потім запустіть команду вище, щоб змінити її версію, яку ви маєте.

Додатковий крок: Переконайтеся, що ви переглядаєте доступність БД не скидається, зробіть це, клацнувши правою кнопкою миші властивості папки та бази даних. (переконайтеся, що у вас є права, щоб вам не відмовили у доступі)


2

Для мене використання рішення, наданого codedom , не спрацювало. Тут ми можемо змінити лише версію сумісності вихідної бази даних.

Але актуальна проблема полягає у тому, що внутрішня версія бази даних, яка не збігається через зміни формату зберігання.

Детальніше про версію SQL Server та їхню внутрішню версію db та рівень сумісності з Db можна переглянути тут, тому було б добре, якщо б ви створили базу даних за допомогою версії SQL Server 2012 Express або нижче. Або почніть використовувати Visual Studio 2015 Preview.


2

Це рішення вирішує мою проблему: (з: https://msdn.microsoft.com/en-us/library/ms239722.aspx )

Постійно вкласти файл бази даних (.mdf) із вузла Data Connections

  1. Відкрийте контекстне меню для з'єднань даних і виберіть Додати нове з'єднання.

    З'явиться діалогове вікно Додати підключення.

  2. Виберіть кнопку Змінити .

    З'явиться діалогове вікно Змінити джерело даних .

  3. Виберіть Microsoft SQL Server і натисніть кнопку OK .

    В Add Connection Повторно з'явиться діалогове вікно, з 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. Виберіть кнопку OK .

    Нова база даних з’являється у Провіднику серверів. Він залишатиметься підключеним до SQL Server, поки ви явно не від’єднаєте його.


1
Це рішення спрацювало для мене. Я змінив налаштування підключення Vs2012 за замовчуванням у tool-option-database tools-> data connection -> sql name name = (LocalDB) \ MSSQLLocalDB. а потім виконали вищевказаний крок. а на кроці 4 я ввів назву екземпляра ny sql 2014 як (LocalDB) \ MSSQLLocalDB. і кожна річ гарна. спасибі брате.
Абдул Хамед

1

Іншим рішенням є міграція бази даних, наприклад, до 2012 року, коли ви «експортуєте» БД з, наприклад, менеджера Sql Server 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".

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.