Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
In this article
Applies to:
SQL Server
Sets certain database behaviors to be compatible with the specified version of SQL Server.
Important
This feature will be removed in a future version of SQL Server. Avoid using this feature in new development work, and plan to modify applications that currently use this feature. Use ALTER DATABASE (Transact-SQL) compatibility level instead.
Transact-SQL syntax conventions
sp_dbcmptlevel
[ [ @dbname = ] N'dbname' ]
[ , [ @new_cmptlevel = ] new_cmptlevel OUTPUT ]
[ ; ]
The name of the database for which the compatibility level is to be changed. Database names must conform to the rules for identifiers. @dbname is sysname, with a default of NULL
.
The version of SQL Server with which the database is to be made compatible. @new_cmptlevel is an OUTPUT parameter of type tinyint, and must be one of the following values:
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
(success) or 1
(failure).
If no parameters are specified or if the @dbname parameter isn't specified, sp_dbcmptlevel
returns an error.
If @dbname is specified without @new_cmptlevel, the Database Engine returns a message displaying the current compatibility level of the specified database.
For a description of compatibilities levels, see ALTER DATABASE (Transact-SQL) compatibility level.
Only the database owner, members of the sysadmin fixed server role, and the db_owner fixed database role (if you're changing the current database) can execute this procedure.