Actualizar la base de datos de SQL Server utilizando el nivel de compatibilidad
-
16-10-2019 - |
Pregunta
- He realizado una copia de seguridad de una base de datos de SQL Server que se ejecuta en SQL Server 2008.
- He restaurado esa copia de seguridad en una instancia de SQL Server 2012.
- He establecido el nivel de compatibilidad en la instancia restaurada en SQL Server 2012 (110).
¿Qué hace esto a la base de datos?
¿Lo hace?
- Hacer que se examinen los procedimientos almacenados en busca de incompatibilidades
- causar actualizaciones a todas las páginas de datos en la base de datos
- Causar actualizaciones a los datos a medida que se accede en el futuro
- Causar errores en el futuro si se ejecutan procedimientos o opiniones almacenados que usan sintaxis incompatible
¿Dónde en los libros en línea, o de lo contrario, puedo encontrar más detalles?
Solución
El nivel de compatibilidad simplemente cambia la sintaxis del lenguaje compatible con las declaraciones SQL. Esto hará que todos los planes de ejecución expiren y los obligen a recompilarlos. No tiene nada que ver con el motor de almacenamiento de datos o la forma en que los datos se escriben en el disco.
Una vez que se adjunta una base de datos a una instancia de SQL 2012, está en el formato de almacenamiento SQL 2012 y no se puede volver a una versión anterior de SQL (sin importar a qué configuración se establece el nivel de compatibilidad).
El enlace proporcionado por @shark (http://msdn.microsoft.com/en-us/library/bb510680%28v=sql.110%29.aspx) en los comentarios proporciona una lectura adicional sobre el tema.