Il database non può essere aperto perché è la versione 782. Questo server supporta la versione 706 e precedenti. Un percorso di downgrade non è supportato


84

Ho creato un database di esempio utilizzando SQL Server 2014 Express e l'ho aggiunto alla mia soluzione Windows Form. Quando si fa doppio clic su di esso per aprire, ottengo questo errore.

Il database non può essere aperto perché è la versione 782. Questo server supporta la versione 706 e precedenti. Un percorso di downgrade non è supportato

Sto usando Visual Studio 2013. Non capisco davvero che sto usando le due ultime versioni dei prodotti Microsoft e sono incompatibili. Mi sto perdendo qualcosa? Come posso aprire questo database?

inserisci qui la descrizione dell'immagine


2
È necessario puntare Visual Studio sull'istanza di SQL Server 2014. Non è che i due siano incompatibili, è che Visual Studio utilizza la sua istanza 2012 per impostazione predefinita e non supporta i database dal 2014. Il motivo per cui utilizza 2012 come impostazione predefinita: SQL Server 2014 non esisteva quando Visual Studio 2013 è stato rilasciato.
Aaron Bertrand

@AaronBertrand grazie. Come posso indirizzare VS al mio SQL Server 2014. C'è qualche collegamento che guiderà?
Omer K

5
Certo, smetti di puntare Visual Studio (e la tua applicazione) su un file (usando AttachDBFileName). Supponendo che il database sia già collegato alla tua .\SQLEXPRESSistanza locale , cambia semplicemente le stringhe di connessione in modo che puntino a quel server ( Data Source=.\SQLEXPRESS;Initial Catalog=OMERDENEME;...) e smetti di usareAttachDBFileName .
Aaron Bertrand

Risposte:


141

Prova a cambiare Tools> Options> Database Tools> Data Connections> SQL Server Instance Name.

L'impostazione predefinita per VS2013 è (LocalDB)\v11.0.

Il passaggio a (LocalDB)\MSSQLLocalDB, ad esempio, sembra funzionare: niente più errori della versione 782.


2
Ho avuto problemi simili con Visual Studio 2013 Express per Web ed Entity Framework 6. EF ha creato automaticamente il file MDF, ma non sono riuscito a connettermi da VS durante l'utilizzo (LocalDB)\v11.0. La modifica del nome del server per (LocalDB)\MSSQLLocalDBrendere l'errore relativo alla scomparsa della versione #.
wrschneider

3
Ho anche dovuto modificare la stringa di connessione nel file web.config in (LocalDB) \ MSSQLLocalDB
Roger Harvest

11
In VS Studio 2015, il valore predefinito è (LocalDB) \ MSSQLLocalDB. Quindi, questo non aiuta in questo caso
utileBee

2
Ho dovuto riavviare Visual Studio dopo aver modificato l'impostazione sopra menzionata
Manoj Attal

1
@ Kun-yaoWang, il commento sopra menzionato da usefulBee ha funzionato per me e sto usando VS 2015.
Manoj Attal

10

Prova a cambiare il livello di compatibilità , ha funzionato per me.

Verifica di che livello è

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

Quindi rendilo compatibile con la versione precedente

ALTER DATABASE VJ_DATABASE
SET COMPATIBILITY_LEVEL = 110;   
GO
  • 100 = Sql Server 2008
  • 110 = Sql Server 2012
  • 120 = Sql Server 2014

Per impostazione predefinita, Sql Server 2014 cambierà la compatibilità delle versioni db solo per il 2014, utilizzando il @@ versionpulsante dovresti essere in grado di sapere quale versione è Sql Server.

Quindi esegui il comando sopra per cambiarlo nella versione che hai.

Passaggio aggiuntivo: verificare che l'accessibilità del DB non venga ripristinata, farlo facendo clic con il pulsante destro del mouse sulle proprietà della cartella e del database. (assicurati di avere i diritti in modo da non ottenere un accesso negato)


2

Per me l'utilizzo della soluzione fornita da codedom non ha funzionato. Qui possiamo solo modificare la versione di compatibilità del database in uscita.

Ma il problema reale risiede in questa versione del database interno che non corrisponde a causa di modifiche nel formato di archiviazione.

Scopri ulteriori dettagli sulla versione di SQL Server e sulla loro versione del database interno e sul livello di compatibilità del database qui Quindi sarebbe bene se crei il tuo database utilizzando la versione SQL Server 2012 Express o inferiore. Oppure inizia a utilizzare Visual Studio 2015 Preview.


2

Questa soluzione risolve il mio problema: (da: https://msdn.microsoft.com/en-us/library/ms239722.aspx )

Per allegare in modo permanente un file di database (.mdf) dal nodo Connessioni dati

  1. Apri il menu di scelta rapida per le connessioni dati e scegli Aggiungi nuova connessione.

    L' Add Viene visualizzata la finestra di dialogo Connessione.

  2. Scegli il pulsante Cambia .

    L' origine dati Change visualizzata la casella di dialogo.

  3. Seleziona Microsoft SQL Server e scegli il pulsante OK .

    I Aggiungi connessione finestra di dialogo riappare, con Microsoft SQL Server (SqlClient) visualizzati nella fonte dei dati casella di testo.

  4. Nella casella Nome server digitare o passare al percorso dell'istanza locale di SQL Server. Puoi digitare quanto segue:

    • "." per l'istanza predefinita sul tuo computer.
    • "(LocalDB) \ v11.0" per l'istanza predefinita di SQL Server Express LocalDB.
    • ". \ SQLEXPRESS" per l'istanza predefinita di SQL Server Express.

    Per informazioni su SQL Server Express LocalDB e SQL Server Express, vedere Panoramica dei dati locali .

  5. Selezionare Usa autenticazione di Windows o Usa autenticazione di SQL Server .

  6. Scegli Allega un file di database , Sfoglia e apri un file .mdf esistente.

  7. Scegli il pulsante OK .

    Il nuovo database viene visualizzato in Esplora server. Rimarrà connesso a SQL Server finché non lo scolleghi esplicitamente.


1
Questa soluzione ha funzionato per me. Ho cambiato la mia impostazione di connessione predefinita Vs2012 in tool-option-database tools-> data connection -> sql server name = (LocalDB) \ MSSQLLocalDB. e poi ha seguito il passaggio precedente. e al passaggio 4 ho inserito il nome dell'istanza di NY sql 2014 come (LocalDB) \ MSSQLLocalDB. e ogni cosa va bene. grazie fratello.
Abdul ha odiato il

1

Un'altra soluzione è migrare il database ad es. 2012 quando si "esporta" il DB da es. Sql Server manager 2014. Questo viene fatto nel menu Attività-> genera script quando si fa clic con il pulsante destro del mouse su DB. Segui queste istruzioni:

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

Genera uno script con tutto e poi nel tuo gestore di server SQL, ad esempio 2012, esegui lo script come specificato nelle istruzioni. Ho eseguito il test con successo.


0

Uso VS 2017. Per impostazione predefinita, il nome dell'istanza di SQL Server è (LocalDB) \ MSSQLLocalDB. Tuttavia, riducendo il livello di compatibilità del database a 110 come nella risposta di @ user3390927, potrei allegare il file di database in VS, scegliendo Nome server come "localhost \ SQLExpress".

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.