dkr*_*etz 17

来自MSDN:

SQL-92标准要求等于(=)或不等于(<>)与空值的比较计算为FALSE.

SET ANSI_NULLSON时,WHERE column_name = NULL即使column_name中存在空值,SELECT语句也会返回零行.WHERE column_name <> NULL即使column_name中存在非空值,SELECT语句也会返回零行.

SET ANSI_NULLSOFF时,Equals(=)和Not Equal To(<>)比较运算符不遵循SQL-92标准.SELECT语句使用WHERE column_name = NULL返回column_name中具有空值的行.SELECT语句使用WHERE column_name <> NULL返回列中具有非空值的行.此外,SELECT语句使用WHERE column_name <> XYZ_value返回非XYZ_value且不为NULL的所有行.

  • @Matt:除非链接的资源消失.在MSDN的情况下不太可能,但在其他情况下可能.我通常会尝试单独编写答案,并使用链接进行进一步阅读或作为支持性文档. (2认同)

Otá*_*cio 11

它改变了NULLs的行为方式.NULL在ANSI中产生的东西就像

NULL = NULL - >假

NULL <> NULL - >假

有了ANSI_NULLSoff,(NULL = NULL) - > true.