sp_dbcmptlevel (Transact-SQL)
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
Syntax
sp_dbcmptlevel
[ [ @dbname = ] N'dbname' ]
[ , [ @new_cmptlevel = ] new_cmptlevel OUTPUT ]
[ ; ]
Arguments
[ @dbname = ] N'dbname'
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
.
[ @new_cmptlevel = ] new_cmptlevel OUTPUT
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)
Return code values
0
(success) or 1
(failure).
Result set
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.
Remarks
For a description of compatibilities levels, see ALTER DATABASE (Transact-SQL) compatibility level.
Permissions
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.