Utworzyłem przykładową bazę danych przy użyciu programu SQL Server 2014 Express i dodałem ją do mojego rozwiązania Windows Form. Po dwukrotnym kliknięciu, aby otworzyć, pojawia się ten błąd.
Nie można otworzyć bazy danych, ponieważ jest to wersja 782. Ten serwer obsługuje wersję 706 i starsze. Ścieżka obniżenia nie jest obsługiwana
Używam Visual Studio 2013. Naprawdę nie rozumiem, że używam dwóch najnowszych wersji produktów Microsoft i są one niezgodne. Czy coś mi brakuje? Jak mogę otworzyć tę bazę danych?
sql-server
visual-studio
Omer K.
źródło
źródło
AttachDBFileName
). Zakładając, że baza danych jest już podłączona do lokalnej.\SQLEXPRESS
instancji, po prostu zmień parametry połączenia, aby wskazywały na ten serwer (Data Source=.\SQLEXPRESS;Initial Catalog=OMERDENEME;...
) i przestań używaćAttachDBFileName
.Odpowiedzi:
Spróbuj zmienić Tools> Options> Database Tools> Data Connections> SQL Server Instance Name.
Wartość domyślna dla VS2013 to
(LocalDB)\v11.0
.Zmiana
(LocalDB)\MSSQLLocalDB
na przykład wydaje się działać - koniec błędu wersji 782.źródło
(LocalDB)\v11.0
. Zmiana nazwy serwera w celu(LocalDB)\MSSQLLocalDB
wyeliminowania błędu dotyczącego wersji # zniknęła.Spróbuj zmienić poziom zgodności , działał dla mnie.
Sprawdź, jaki to poziom
USE VJ_DATABASE; GO SELECT compatibility_level FROM sys.databases WHERE name = 'VJ_DATABASE'; GO
Następnie dostosuj go do starszej wersji
ALTER DATABASE VJ_DATABASE SET COMPATIBILITY_LEVEL = 110; GO
Domyślnie Sql Server 2014 zmieni kompatybilność wersji bazy danych tylko na 2014, używając
@@ version
powinieneś być w stanie stwierdzić, która wersja jest Sql Server.Następnie uruchom powyższe polecenie, aby zmienić posiadaną wersję.
Dodatkowy krok: Sprawdź, czy dostępność bazy danych nie jest resetowana, zrób to, klikając prawym przyciskiem myszy właściwości folderu i bazy danych. (upewnij się, że masz prawa, aby nie odmówić dostępu)
źródło
U mnie korzystam z rozwiązania dostarczonego przez codedom nie działało . Tutaj możemy zmienić tylko wersję kompatybilności wyjściowej bazy danych.
Ale rzeczywisty problem polega na tym, że wersja wewnętrznej bazy danych nie pasuje z powodu zmian w formacie przechowywania.
Sprawdź więcej szczegółów na temat wersji SQL Server i ich wewnętrznej wersji bazy danych i poziomu zgodności Db tutaj . Byłoby dobrze, gdybyś utworzył bazę danych przy użyciu wersji SQL Server 2012 Express lub niższej. Lub zacznij korzystać z Visual Studio 2015 Preview.
źródło
To rozwiązanie rozwiązuje mój problem: (z: https://msdn.microsoft.com/en-us/library/ms239722.aspx )
Aby na stałe dołączyć plik bazy danych (.mdf) z węzła Połączenia danych
Otwórz menu skrótów dla połączeń danych i wybierz opcję Dodaj nowe połączenie.
Pojawi się okno dialogowe Dodaj połączenie.
Wybierz zmianę przycisk .
Zostanie wyświetlone okno dialogowe Zmień źródło danych .
Wybierz Microsoft SQL Server i kliknij OK przycisk .
W Dodaj połączenie Pojawi się ponownie okno dialogowe z Microsoft SQL Server (SqlClient) wyświetlany w źródłowym danych polu tekstowym.
W polu Nazwa serwera wpisz lub przejdź do ścieżki do lokalnego wystąpienia programu SQL Server. Możesz wpisać:
Aby uzyskać informacje na temat SQL Server Express LocalDB i SQL Server Express, zobacz Omówienie danych lokalnych .
Wybierz opcję Użyj uwierzytelniania systemu Windows lub Użyj uwierzytelniania serwera SQL .
Wybierz Dołącz plik bazy danych , Przeglądaj i otwórz istniejący plik .mdf.
Wybierz OK przycisk .
Nowa baza danych pojawi się w Eksploratorze serwera. Pozostanie połączony z SQL Server, dopóki go jawnie nie odłączysz.
źródło
Innym rozwiązaniem jest migracja bazy danych do np. 2012 podczas "eksportu" bazy danych z np. Sql Server manager 2014. Robi się to w menu Zadania-> generuj skrypty po kliknięciu prawym przyciskiem myszy na DB. Po prostu postępuj zgodnie z instrukcją:
https://www.mssqltips.com/sqlservertip/2810/how-to-migrate-a-sql-server-database-to-a-lower-version/
Generuje skrypty ze wszystkim, a następnie w menadżerze serwera SQL np. 2012 uruchom skrypt zgodnie z instrukcją. Test wykonałem pomyślnie.
źródło
Używam VS 2017. Domyślna nazwa instancji SQL Server to (LocalDB) \ MSSQLLocalDB. Jednak obniżając poziom zgodności bazy danych do 110, jak w odpowiedzi @ user3390927, mogłem dołączyć plik bazy danych w VS, wybierając nazwę serwera jako „localhost \ SQLExpress”.
źródło