Есть ли способ запросить информацию о поддерживаемом уровне совместимости сервера SQL? - PullRequest
1 голос
/ 06 января 2020

В документации Microsoft здесь у нас есть список «Поддерживаемых значений уровня совместимости» для каждой SQL версии сервера. Сохраняется ли эта информация на сервере SQL? Если нет, есть ли другой способ получить эту информацию?

Я уже просматривал реестр Windows, я не нашел его.

Ответы [ 3 ]

2 голосов
/ 07 января 2020

У Microsoft был подход, при котором каждая версия SQL Server поддерживала уровень совместимости текущего выпуска до n-2.

С момента выпуска SQL Server 2016 ранее поддерживалась уровни совместимости не были удалены (это должно помочь в переходе на сертификацию на уровне совместимости базы данных). Я не совсем уверен, будут ли удалены 100 в следующем выпуске SQL Server, но я подозреваю, что он останется для помощи в будущих путях обновления.

Существует матрица это показывает этот шаблон.

Это фактически означает, что вы можете запросить базу данных master, чтобы получить текущий уровень совместимости выпусков, а затем предположить, что каждый выпуск до 100 также доступен.

0 голосов
/ 06 января 2020

Вот запрос, который я использую, чтобы получить основную c информацию о базах данных с сервера. Он запрашивает sys.databases . Для перевода уровня совместимости вы можете использовать этот список .

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;
0 голосов
/ 06 января 2020

Это должно быть helpfu и именно то, что вы после

    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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...