Поделиться через


sp_dbcmptlevel (Transact-SQL)

Область применения: SQL Server

Задает определенное поведение базы данных, совместимое с указанной версией SQL Server.

Внимание

Эта функция будет удалена в будущей версии SQL Server. Избегайте использования этого компонента в новых разработках и запланируйте изменение существующих приложений, в которых он применяется. Вместо этого используйте уровень совместимости ALTER DATABASE (Transact-SQL).

Соглашения о синтаксисе Transact-SQL

Синтаксис

sp_dbcmptlevel
    [ [ @dbname = ] N'dbname' ]
    [ , [ @new_cmptlevel = ] new_cmptlevel OUTPUT ]
[ ; ]

Аргументы

[ @dbname = ] N'dbname'

Имя базы данных, для которой необходимо изменить уровень совместимости. Имена баз данных должны соответствовать правилам для идентификаторов. @dbname — sysname с значением по умолчаниюNULL.

[ @new_cmptlevel = ] new_cmptlevel OUTPUT

Версия SQL Server, с которой должна быть совместима база данных. @new_cmptlevel — это параметр OUTPUT типа tinyint и должен быть одним из следующих значений:

  • 90 = SQL Server 2005 (9.x)
  • 100 = SQL Server 2008 (10.0.x)
  • 110 = SQL Server 2012 (11.x)
  • 120 = SQL Server 2014 (12.x)
  • 130 = SQL Server 2016 (13.x)
  • 140 = SQL Server 2017 (14.x)
  • 150 = SQL Server 2019 (15.x)
  • 160 = SQL Server 2022 (16.x)

Значения кода возврата

0 (успешно) или 1 (сбой).

Результирующий набор

Если параметры не указаны или если параметр @dbname не указан, sp_dbcmptlevel возвращает ошибку.

Если @dbname указан без @new_cmptlevel, ядро СУБД возвращает сообщение, отображающее текущий уровень совместимости указанной базы данных.

Замечания

Описание уровней совместимости см. в разделе ALTER DATABASE (Transact-SQL).

Разрешения

Только владелец базы данных, члены предопределенной роли сервера sysadmin и db_owner предопределенная роль базы данных (если вы изменяете текущую базу данных), может выполнить эту процедуру.