La base de datos no se puede abrir porque es la versión 782. Este servidor admite la versión 706 y anteriores. No se admite una ruta de degradación

84

Creé una base de datos de muestra usando SQL Server 2014 Express y la agregué a mi solución de Windows Form. Cuando hago doble clic en él para abrir, aparece este error.

La base de datos no se puede abrir porque es la versión 782. Este servidor admite la versión 706 y anteriores. No se admite una ruta de degradación

Estoy usando Visual Studio 2013. Realmente no entiendo que estoy usando las dos últimas versiones de productos de Microsoft y son incompatibles. ¿Me estoy perdiendo de algo? ¿Cómo puedo abrir esta base de datos?

ingrese la descripción de la imagen aquí

Omer K
fuente
2
Debe apuntar Visual Studio a su instancia de SQL Server 2014. No es que los dos sean incompatibles, es que Visual Studio está usando su instancia de 2012 de forma predeterminada y no admite bases de datos de 2014. La razón por la que usa 2012 como predeterminado: SQL Server 2014 no existía cuando Visual Studio 2013 fue lanzado.
Aaron Bertrand
@AaronBertrand gracias. ¿Cómo puedo señalar VS en mi SQL Server 2014? ¿Hay algún enlace que sirva de guía?
Omer K
5
Claro, simplemente deje de apuntar Visual Studio (y su aplicación) a un archivo (usando AttachDBFileName). Suponiendo que la base de datos ya está adjunta a su .\SQLEXPRESSinstancia local , simplemente cambie las cadenas de conexión para que apunten a ese servidor ( Data Source=.\SQLEXPRESS;Initial Catalog=OMERDENEME;...) y deje de usarAttachDBFileName .
Aaron Bertrand

Respuestas:

141

Intente cambiar Tools> Options> Database Tools> Data Connections> SQL Server Instance Name.

El valor predeterminado para VS2013 es (LocalDB)\v11.0.

Cambiar a (LocalDB)\MSSQLLocalDB, por ejemplo, parece funcionar, no más error de la versión 782.

usuario1723033
fuente
2
Tuve problemas similares con Visual Studio 2013 Express para Web y Entity Framework 6. EF creó el archivo MDF automáticamente, pero no pude conectarme desde VS cuando lo usé (LocalDB)\v11.0. Cambiar el nombre del servidor para (LocalDB)\MSSQLLocalDBhacer desaparecer ese error sobre la versión #.
wrschneider
3
También tuve que cambiar la cadena de conexión en el archivo web.config a (LocalDB) \ MSSQLLocalDB
Roger Harvest
11
En VS Studio 2015, el valor predeterminado es (LocalDB) \ MSSQLLocalDB. Por lo tanto, esto no ayuda en este caso
útil Abeja
2
Tuve que reiniciar Visual Studio después de cambiar la configuración mencionada anteriormente
Manoj Attal
1
@ Kun-yaoWang, el comentario anterior mencionado por helpfulBee funcionó para mí y estoy usando VS 2015.
Manoj Attal
10

Intenta cambiar el nivel de compatibilidad , funcionó para mí.

Verifica que nivel es

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

Luego hazlo compatible con la versión anterior

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

De forma predeterminada, Sql Server 2014 cambiará la compatibilidad de las versiones de la base de datos a solo 2014, usando el @@ versiondebería poder saber qué versión de Sql Server es.

Luego ejecute el comando de arriba para cambiar la versión que tiene.

Paso adicional: asegúrese de que mira que la accesibilidad de la base de datos no se restablece, haga esto haciendo clic derecho en las propiedades de la carpeta y la base de datos. (asegúrese de tener derechos para que no se le niegue el acceso)


fuente
2

Para mí, el uso de la solución proporcionada por codedom no funcionó. Aquí solo podemos cambiar la versión de compatibilidad de la base de datos existente.

Pero el problema real radica en que la versión de la base de datos interna no coincide debido a cambios en el formato de almacenamiento.

Consulte más detalles sobre la versión de SQL Server y su versión de base de datos interna y el nivel de compatibilidad de base de datos aquí. Por lo tanto, sería bueno que creara su base de datos utilizando la versión de SQL Server 2012 Express o una inferior. O comience a usar Visual Studio 2015 Preview.

Aamol
fuente
2

Esta solución resuelve mi problema: (de: https://msdn.microsoft.com/en-us/library/ms239722.aspx )

Para adjuntar permanentemente un archivo de base de datos (.mdf) desde el nodo Conexiones de datos

  1. Abra el menú de acceso directo para Conexiones de datos y elija Agregar nueva conexión.

    La Agregar Aparece el cuadro de diálogo Conexión.

  2. Elija el botón Cambiar .

    El origen de datos Cambio Aparece el cuadro de diálogo.

  3. Seleccione Microsoft SQL Server y elija el botón Aceptar .

    Los Agregar conexión vuelve a aparecer el cuadro de diálogo, con Microsoft SQL Server (SqlClient) que aparecen en el origen de datos cuadro de texto.

  4. En el cuadro Nombre del servidor, escriba o busque la ruta a la instancia local de SQL Server. Puede escribir lo siguiente:

    • "." para la instancia predeterminada en su computadora.
    • "(LocalDB) \ v11.0" para la instancia predeterminada de SQL Server Express LocalDB.
    • ". \ SQLEXPRESS" para la instancia predeterminada de SQL Server Express.

    Para obtener información sobre SQL Server Express LocalDB y SQL Server Express, consulte Descripción general de datos locales .

  5. Seleccione Usar autenticación de Windows o Usar autenticación de SQL Server .

  6. Elija Adjuntar un archivo de base de datos , Examinar y abra un archivo .mdf existente.

  7. Elija el botón Aceptar .

    La nueva base de datos aparece en el Explorador de servidores. Permanecerá conectado a SQL Server hasta que lo desconecte explícitamente.

Sayed Abolfazl Fatemi
fuente
1
Esta solución funcionó para mí. Cambié la configuración de conexión predeterminada de Vs2012 en tool-option-database tools-> data connection -> sql server name = (LocalDB) \ MSSQLLocalDB. y luego siguió el paso anterior. y en el paso 4 ingresé el nombre de la instancia ny sql 2014 como (LocalDB) \ MSSQLLocalDB. y todo está bien. gracias hermano.
Abdul Hameed
1

Otra solución es migrar la base de datos a, por ejemplo, 2012 cuando "exporta" la base de datos desde, por ejemplo, Sql Server Manager 2014. Esto se hace en el menú Tareas-> generar scripts cuando se hace clic derecho en DB. Simplemente siga estas instrucciones:

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

Genera una secuencia de comandos con todo y luego en su administrador de servidor SQL, por ejemplo, 2012 ejecuta la secuencia de comandos como se especifica en la instrucción. He realizado la prueba con éxito.

Naha
fuente
0

Yo uso VS 2017. Por defecto, el nombre de la instancia de SQL Server es (LocalDB) \ MSSQLLocalDB. Sin embargo, al degradar el nivel de compatibilidad de la base de datos a 110 como en la respuesta de @ user3390927, podría adjuntar el archivo de la base de datos en VS, eligiendo el nombre del servidor como "localhost \ SQLExpress".

theandroid
fuente