mssql sqlserver SET ANSI_NULLS关键字用法说明


摘要:
下文讲述 “SET ANSI_NULLS”关键字的功能及相关说明


SET ANSI_NULLS 关键字用法说明

SET ANSI_NULLS关键字功能:
对空值(null)的判断使用 等于号(=)或不等于号(!=)运算符时,是否遵守sql-92的标准。
SET ANSI_NULLS 语法:

SET ANSI_NULLS {ON|OFF}
—————————————————————————
sql-92标准规定:
对空值null进行等于(=)和不等于(!=)判断时,返回值为false,
—————————————————————————–
当 SET ANSI_NULLS 属性设置为ON时,
当使用脚本 where [列名] =null,如果此时“[列名]”中存在null,但是还是无法返回数据,因为 [列名] =null 返回 false
同理
使用 where [列名] !=null ,也无法返回数据。
—————————————————————————
当 SET ANSI_NULLS 属性设置为OFF时, 代表无需遵守sql-92的标准
当使用脚本 where [列名] =null,如果此时“[列名]”中存在null,会返回此列的空值数据
同理
使用 where [列名] !=null ,将返回列值不等于空值(null)的数据。



SET ANSI_NULLS 注意事项:
当 SET ANSI_NULLS 设置为ON时,NULL值为 UNKNOWN数据,所以和任何值比较都返回 UNKNOWN类型
当 SET ANSI_NULLS 设置为OFF时,NULL值为 NULL数据,当和值为NULL比较时,则返回true
—————————————————————————
在对计算列、索引视图上创建或操作索引时, SET ANSI_NULLS 必须为ON,否则无法进行相关的操作,将返回错误信息