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是 tinyint 类型的 OUTPUT 参数,必须是下列值之一:

  • 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 则返回错误。

如果未指定@new_cmptlevel@dbname,数据库引擎将返回显示指定数据库的当前兼容级别的消息。

注解

有关兼容性级别的说明,请参阅 ALTER DATABASE (Transact-SQL) 兼容性级别

权限

只有数据库所有者、sysadmin 固定服务器角色的成员db_owner固定数据库角色(如果要更改当前数据库)才能执行此过程。