zoukankan      html  css  js  c++  java
  • SET ANSI_NULLS ON

      SQL Server 创建存储过程模板会自动添加几行代码,其中一行为 【SET ANSI_NULLS ON】,作用是什么呢?

      SQL-92 标准要求在对空值(NULL) 进行等于 (=) 或不等于 (<>) 比较时取值为 FALSE。

      当 SET ANSI_NULLS 为 ON 时,即使 column_name 中包含空值,使用 WHERE column_name = NULL 的 SELECT 语句仍返回零行。即使 column_name 中包含非空值,使用 WHERE column_name <> NULL 的 SELECT 语句仍会返回零行。

      当 SET ANSI_NULLS 为 OFF 时,等于 (=) 和不等于 (<>) 比较运算符不遵从 SQL-92 标准。使用 WHERE column_name = NULL 的 SELECT 语句返回 column_name 中包含空值的行。使用 WHERE column_name <> NULL 的 SELECT 语句返回列中包含非空值的行。

      先来测试一下:

      新建表Score,里面有行记录如下:

      

      先正常查询空记录:

      

      再使用等号(=)号查询空记录:

      

       这时我们使用 【SET ANSI_NULLS OFF】,再通过等号查询,查看结果(结果和使用 is null 一致):

      

  • 相关阅读:
    [haoi2015]T1
    [haoi2014]走出金字塔
    [haoi2014]穿越封锁线
    [haoi2014]遥感监测
    [haoi2012]高速公路
    [haoi2012]容易题
    [haoi2008]排名系统
    【bzoj1014】[JSOI2008]火星人prefix
    0916解题报告
    生成树计数问题
  • 原文地址:https://www.cnblogs.com/lhgohead/p/12017320.html
Copyright © 2011-2022 走看看