• SET COMPATIBILITY_LEVEL的作用


    SET COMPATIBILITY_LEVEL 用于设置MS SQL Server的兼容级别

    MS SQL Server 2000:SET COMPATIBILITY_LEVEL=80

    MS SQL Server 2005:SET COMPATIBILITY_LEVEL=90

    MS SQL Server 2008:SET COMPATIBILITY_LEVEL=100

    MS SQL Server 2012:SET COMPATIBILITY_LEVEL=110

    最常使用方法:

    ALTER DATABASE [数据库名]
    SET COMPATIBILITY_LEVEL = 100

    详细用法参见此处

    使用高版本的数据库设置去兼容低版本的数据时要注意。

    比如在MS SQL Server 2008数据库把COMPATIBILITY_LEVEL设置为80,也就是兼容MS SQL Server 2000.

    查看如下查询语句

    比如有两个表:ProductColor、Product

    ProductCategory表有:CategoryID、CategoryName.

    Product表有ProductID、SKU、CategoryID(对应ProductCategory表CategoryID字段)字段。

    SELECT *FROM PRODUCT P INNER JOIN PRODUCTCATEGORY PC ON P.CATEGORYID=PC.CATEGORYID
    
    ORDER BY CATEGORYID
    

    MS SQL Server 2008默认的COMPATIBILITY_LEVEL为100.

    如果把MS SQL Server 2008的COMPATIBILITY_LEVEL设置为80,即兼容MS SQL Server 2000.

    会抛出“System.Data.SqlClient.SqlExceptionAmbiguous column name  CATEGORYID.”如下错误。

    因为这一句

    ORDER BY CATEGORYID
    

    的CATEGORYID没有指定具体是哪个表的字段。

    所以为数据库设置COMPATIBILITY_LEVEL兼容低版的数据库时要特别注意。

  • 相关阅读:
    52、前端基础之javascript
    47、前端基础一
    48前端之css
    Django框架----外键关联
    Django框架----数据库表的单表查询
    Django框架----ORM数据库操作
    Django框架----render函数和redirect函数的区别
    Django框架----models.py(数据库操作文件)
    Django框架----视图函数补充
    Django框架----基础
  • 原文地址:https://www.cnblogs.com/yangbingqi/p/2818767.html
Copyright © 2020-2023  润新知