2009-10-01 26 views
41

Según BOL (SQL Server Books Online) en sp_dbcmptlevel,
¿Cómo verificar la compatibilidad de la base de datos SQL Server después de que sp_dbcmptlevel está en desuso?

Esta característica se quitará en una versión futura de Microsoft SQL Server. No use esta característica en el nuevo trabajo de desarrollo y modifique las aplicaciones que actualmente usan esta función lo antes posible. Utilice el nivel de compatibilidad ALTER DATABASE en su lugar.

Ahora, el único modo TSQL que conozco de comprobar la compatibilidad de la base de datos es a través de sp_dbcmptlevel. Por lo que yo sé, ALTER DATABASE Compatibility Level es sólo para establecer el nivel de compatibilidad, no conseguir información.

¿Cómo se debe obtener el nivel de compatibilidad sin utilizar la GUI?

Respuesta

80
select name, compatibility_level , version_name = 
CASE compatibility_level 
    WHEN 65 THEN 'SQL Server 6.5' 
    WHEN 70 THEN 'SQL Server 7.0' 
    WHEN 80 THEN 'SQL Server 2000' 
    WHEN 90 THEN 'SQL Server 2005' 
    WHEN 100 THEN 'SQL Server 2008/R2' 
    WHEN 110 THEN 'SQL Server 2012' 
    WHEN 120 THEN 'SQL Server 2014' 
    WHEN 130 THEN 'SQL Server 2016' 
    WHEN 140 THEN 'SQL Server 2017' 
    ELSE 'new unknown - '+CONVERT(varchar(10),compatibility_level) 
END 
from sys.databases 
+0

me gustaría añadir que se puede resolver esto mediante la apertura de SQL Server y ver lo que hace Management Studio. Acabo de tener una mirada y en su interior una consulta bastante largo y con formato incorrecto También utiliza sys.databases – MikeKulls

+1

'selecto cmptlevel de master.dbo.sysdatabases donde nombre = nombre_base_de_datos()' para SQL2000 +, no está seguro de cuándo va a desaparecer. –

14
select compatibility_level from sys.databases where name ='myDB' 
5

que esto sería útil aquí ...

65 = SQL Server 6.5 
70 = SQL Server 7.0 
80 = SQL Server 2000 
90 = SQL Server 2005 
100 = SQL Server 2008/R2 
110 = SQL Server 2012 
120 = SQL Server 2014 
130 = SQL Server 2016 
1

- - para cambiarlo

EXEC sp_dbcmptlevel 'db_name', 130 
Cuestiones relacionadas