62 votes

Comment vérifier la compatibilité des bases de données SQL Server après que sp_dbcmptlevel soit déprécié ?

Selon le BOL (SQL Server Books Online) sur sp_dbcmptlevel ,

Cette fonctionnalité sera supprimée dans une prochaine version de Microsoft SQL Server. N'utilisez pas cette fonctionnalité dans les nouveaux travaux de développement et modifiez les applications qui l'utilisent actuellement dès que possible. Utilisez plutôt ALTER DATABASE Compatibility Level.

Maintenant, le seul moyen que je connaisse pour vérifier la compatibilité des bases de données avec TSQL est de le faire par le biais de sp_dbcmptlevel . Pour autant que je sache, ALTER DATABASE Compatibility Level est juste pour paramètre le niveau de compatibilité, sans obtenir d'informations.

Comment obtenir le niveau de compatibilité sans utiliser l'interface graphique ?

110voto

Nick Kavadias Points 4557
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'
    WHEN 150 THEN 'SQL Server 2019'
    ELSE 'new unknown - '+CONVERT(varchar(10),compatibility_level)
END
from sys.databases

0 votes

J'ajouterais que vous pouvez résoudre ce problème en ouvrant SQL Server Profiler et en voyant ce que fait Management Studio. Je viens de jeter un coup d'oeil et dans une requête plutôt longue et mal formatée, il utilise également sys.databases.

1 votes

select cmptlevel from master.dbo.sysdatabases where name = db_name() pour SQL2000+, je ne sais pas quand cela disparaîtra.

18voto

mjv Points 38081
select compatibility_level from sys.databases where name ='myDB'

7voto

sam yi Points 1890

J'ai pensé que cela pourrait être utile ici...

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

2voto

user6341745 Points 37

Comment vérifier la compatibilité des bases de données SQL Server

       SELECT compatibility\_level  as \[Current compatibility\_level\] FROM
         sys.databases WHERE name = 'Database Name';

1voto

Jacky Points 1063

J'aimerais ajouter la réponse de msdn :

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

https://msdn.microsoft.com/en-us/library/bb933794.aspx

0 votes

Il dit que je n'ai pas sys.databases dans ma base de données.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X