ALTER DATABASE (Transact-SQL) 兼容级别

适用对象:SQL Server(从 2008 版开始)Azure SQL 数据库Azure SQL 数据仓库并行数据仓库

将某些数据库行为设置为与指定的 SQL Server 版本兼容。 有关其他 ALTER DATABASE 选项,请参阅 ALTER DATABASE

有关语法约定的详细信息,请参阅 Transact-SQL 语法约定

语法

ALTER DATABASE database_name

SET COMPATIBILITY_LEVEL = { 150 | 140 | 130 | 120 | 110 | 100 | 90 }

参数

database_name 要修改的数据库的名称。

COMPATIBILITY_LEVEL { 150 | 140 | 130 | 120 | 110 | 100 | 90 | 80 } 是使数据库与之兼容的 SQL Server 版本。 可以配置以下兼容级别值(并非所有版本都支持所有以上列出的兼容级别):

Product 数据库引擎版本 兼容级别指定 支持的兼容级别值
SQL Server 2019(预览版) 15 150 150、140、130、120、110、100
SQL Server 2017 (14.x) 14 140 140、130、120、110、100
Azure SQL Database 单一数据库/弹性池 12 130 150、140、130、120、110、100
Azure SQL Database 托管实例 12 130 150、140、130、120、110、100
SQL Server 2016 (13.x) 13 130 130、120、110、100
SQL Server 2014 (12.x) 12 120 120、110、100
SQL Server 2012 (11.x) 11 110 110、100、90
SQL Server 2008 R2 10.5 100 100、90、80
SQL Server 2008 10 100 100、90、80
SQL Server 2005 (9.x) 9 90 90、80
SQL Server 2000 8 80 80

备注

从 2018 年 1 月起,在 Azure SQL Database 中,新创建的数据库的默认兼容性级别为 140 。 我们不会更新现有数据库的数据库兼容性级别。 这是由客户自行决定的。 不过,强烈建议客户计划转到最新的兼容性级别,以便利用最新的改进。

如果想要对整个数据库利用数据库兼容性级别 140,但有理由优先选择映射到数据库兼容性级别 110 的 SQL Server 2012 (11.x) 的基数估计模型,请参阅 ALTER DATABASE SCOPED CONFIGURATION,尤其是其关键字 LEGACY_CARDINALITY_ESTIMATION = ON 。

有关如何评估 Azure SQL Database上两个兼容级别之间最重要查询的性能差异的详细信息,请参阅 Improved Query Performance with Compatibility Level 130 in Azure SQL Database(在 Azure SQL 数据库中使用兼容级别 130 提高了查询性能)。 注意,本文是指兼容性级别 130 和 SQL Server,但同样的方法也适用于转到 140 的 SQL Server 和 Azure SQL Database。

执行以下查询可确定连接到的数据库引擎的版本。

 
SELECT SERVERPROPERTY('ProductVersion');

备注

Azure SQL Database上并不支持所有功能(因兼容级别而异)。

若要确定当前兼容级别,请查询 sys.databases 的 compatibility_level 列。

 
SELECT name, compatibility_level FROM sys.databases;

SQL Server 兼容级别的更多相关文章

  1. Sql Server隔离级别(2)

    Sql Server2005之后,引入了一个新的隔离级别Snapshot(Read Committed Snapshot Isolation (RCSI))和(Snapshot Isolation ( ...

  2. Sql Server隔离级别(1)

    数据库是一个并发操作的环境,就像多线程一样,这样在高并发的情况下回出现一些问题. 假设我们有一张表Account,表结构和数据如下所示 AccountName Balance jo 100 fo 20 ...

  3. SNF平台从sql server兼容oracle的处理方式和开发方式

    前几天有这样一个需求,就是让SNF平台BS版的基础程序全面支持Oracle数据库. 初一看这是一个很大的工程,因为大家都知道 Sql和Oracle的语法有很多的不一样,如 top .日期获取.类型之间 ...

  4. SQL Server数据库级别触发器

    禁止修改表结构和加表 CREATE TRIGGER [Object_Change_Trigger_DDL] ON DATABASE FOR ALTER_TABLE,DROP_TABLE,CREATE_ ...

  5. SQL Server 隔离级别(RC&RR)

  6. 强强联合 阿里云 RDS for SQL Server 与 金蝶 K/3 WISE 产品实现兼容适配

    强强联合 阿里云 RDS for SQL Server 与 金蝶 K/3 WISE 产品实现兼容适配,原K/3 WISE用户通过简单配置就可以无缝搭配RDS SQL Server使用,不需再费时费力自 ...

  7. SQL server 2005中的锁(1)

    在之前的一片随笔中,简单的说了一下SQL Server中的隔离级别.而SQL Server的隔离级别是通过锁的机制来实现的.现在深入一下,谈谈SQL Server中的锁. 开始之前,先要定义一下前提: ...

  8. sql server 常见错误代码15000 - 15999含义解析

    错误 15000 - 15999 SQL Server 2008 R2 其他版本 错误 严重性 是否记录事件 说明(消息正文) 15001 16 否 对象 '%ls' 不存在或不是此操作的有效对象. ...

  9. [微软官方]SQLSERVER的兼容级别

    ALTER DATABASE (Transact-SQL) 兼容级别 https://docs.microsoft.com/zh-cn/sql/t-sql/statements/alter-datab ...

随机推荐

  1. bzoj1513

    二维线段树 听说二维线段树不能下传标记? 就是裸的二维线段树,由于每次高度只能增加,所以我们就可以标记永久化 每个线段树里有两个数组,mx和mark,每次修改路径上所有mx都要修改,mark是区间的精 ...

  2. STM32:获取复位源,软件复位

    RCC CSR寄存器会存储复位标示,可通过它来知道复位原因,来源: if(RCC_GetFlagStatus(RCC_FLAG_PINRST)) printf("PINRST\r\n&quo ...

  3. Java多线程系列九——Atomic类

    参考资料:https://fangjian0423.github.io/2016/03/16/java-AtomicInteger-analysis/http://www.cnblogs.com/54 ...

  4. Entity Framework Code First 迁移

    Entity Framework CodeFirst数据迁移 http://www.cnblogs.com/aehyok/p/3325459.html Entity Framework Code Fi ...

  5. 比Android更深远的改变世界——谷歌开源人工智能系统TensorFlow文档中文版

    OpenStack中国社区编者按:开源无处不在,特别在基础创新领域,未来系统软件都会是开源为主流:2015年11月9日,Google于开源了其第二代人工智能系统Tensorflow,如同6年前同样开源 ...

  6. String类的直接赋值和构造方法赋值的区别

    直接赋值:只开辟一块堆内存空间,而且保存的字符串可以自动入池,以供其他内容相同的字符串对象使用. 构造方法:开辟两块堆内存空间,有一块成为垃圾,并且字符串的内容无法自动入池,但是可以使用String类 ...

  7. 洛谷 P3625 [APIO2009]采油区域【枚举】

    参考:https://blog.csdn.net/FAreStorm/article/details/49200383 没有技术含量但是难想难写,枚举情况图详见参考blog懒得画了 bzoj蜜汁TTT ...

  8. 身份认证系统(四)OAuth2运行流程

    上一节介绍过什么是OAuth2,这节准备用生动的事例来告诉大家OAuth2运行的流程. 我们来想这样一个场景:假设我们有一个叫做万方网盘的服务是用来帮助用户存储论文文档的,我们向外提供了符合OAuth ...

  9. $Edmonds-Karp$[网络流]

    \(原题戳这里\) >最大流最小割定理$(Maximum Flow, Minimum Cut Theorem): $ 网络的最大流等于最小割 具体的证明分三部分 1.任意一个流都小于等于任意一个 ...

  10. java 调用动态库打包sdk

    java连接c++动态库并生成jar包提供给别人调用 1.需要将java通过jni生成头文件,并导入到c++项目并对c++进行jni方法继承 在项目的src目录执行,否则会提示 错误:找不到符号 ja ...