Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 有没有办法查询SQL Server支持的兼容性级别?_Sql Server - Fatal编程技术网

Sql server 有没有办法查询SQL Server支持的兼容性级别?

Sql server 有没有办法查询SQL Server支持的兼容性级别?,sql-server,Sql Server,在Microsoft文档中,我们有每个SQL Server版本的“支持的兼容性级别值”列表。此信息是否保存在SQL Server中?如果没有,是否有其他方法获取此信息 我已经查看了Windows注册表,但没有找到它。这应该会很有帮助,这正是您想要的 select name, compatibility_level , version_name = CASE compatibility_level WHEN 65 THEN 'SQL Server 6.5'

在Microsoft文档中,我们有每个SQL Server版本的“支持的兼容性级别值”列表。此信息是否保存在SQL Server中?如果没有,是否有其他方法获取此信息


我已经查看了Windows注册表,但没有找到它。

这应该会很有帮助,这正是您想要的

    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

下面是我用来从服务器获取数据库基本信息的查询。它质疑。要转换兼容性级别,可以使用以下命令


微软曾经有一种方法,每个版本的SQL Server都支持当前版本的兼容性级别低至n-2

自SQL Server 2016发布以来,以前支持的兼容性级别尚未删除(这旨在帮助更改数据库兼容性级别的认证)。我不完全确定100是否会在SQL Server的下一个版本中被删除,但我怀疑它将继续用于帮助将来的升级路径

有一个例子显示了这种模式


这实际上意味着,您可以查询主数据库以获得当前版本的兼容性级别,然后假设每个版本都有100个可用版本。

我不记得有DMV,没有,但它不会随着SQL server的发布版本而改变,因此,文档似乎就足够了。@Larnu关注的是新的sql server版本,我需要为每个新发布的版本更改脚本,而不是动态获取它。可以通过查看sys.messages中消息id 15048的占位符数来确定支持的兼容级别数,但遗憾的是,它没有硬编码的值
SELECT
    name                     AS [DB Name]
    , state_desc             AS [Status]
    , create_date            AS [Create Date]
    , database_id            AS [DB ID]
    , recovery_model_desc    AS [Recovery Model]
    , SUSER_SNAME(owner_sid) AS [Owner]
    , [compatibility_level]  AS [Compatibility Level]
    , collation_name         AS [Collation]
    , is_auto_close_on       AS [Auto Close]
FROM
    sys.databases
ORDER BY
    name;