Mucho principiantes de SQL Server se preguntan que es el “compatibility level” y para qué se usa. La pregunta es muy válida ya que puede influir en la manera que vas a construir tus queries. Así que, ¿qué es el “compatibility level”? El “compatibility level” establece el comportamiento de la base de datos para que sea compatible con una versión específica de SQL Server. Ok, ahora explícamelo en español. Esta propiedad es la que establece de que manera SQL Server va a interpretar los queries que se corran en una base de datos. Hay sintaxis que se usaba antes que en las versiones más recientes de SQL Server no son permitidas o viceversa.

Muy bien, teniendo eso en cuenta, esta es la lista de que versión representa cada nivel:

80 = SQL Server 2000 / 8.0

90 = SQL Server 2005 / 9.0

100 = SQL Server 2008 / 10.0

Con esta información podemos adaptar nuestra base de datos a la versión de SQL Server que necesitemos y lo hacemos con el siguiente comando:

ALTER DATABASE [nombre de la base de datos] SET COMPATIBILITY_LEVEL = {80 | 90 | 100}

Es importante mencionar que al cambiar el “compatibility level” de la base de datos puede que varios queries dejen de funcionar. Por ejemplo, un query que utilice la sintaxis *= para para crear una relación “left outer join” no va a funcionar en un “compatibility level” mayor al 80. Así que hay que tener mucho cuidado al momento de hacer un cambio al “compatibility level” y siempre hacer estos cambios en un ambiente de desarrollo antes de hacerlos en uno de producción para asegurarnos de que este funcionando a la perfección.