SET ANSI NULLS ON和SET ANSI NULLS OFF之间有什么区别?
我理解运营商=和<>在提到SET ANSI NULLS ON时,where null与nulls比较的语句不返回任何值。作为最佳实践,我应该在程序中使用哪种陈述?为什么?
此致 菲利普
答案 0 :(得分:2)
根据Microsoft的说法,最佳做法是 ANSI_NULLS始终开启。
MSDN说
在SQL Server的未来版本中,ANSI_NULLS将始终为ON和 任何明确将选项设置为OFF的应用程序都将生成 一个错误。避免在新的开发工作和计划中使用此功能 修改当前使用此功能的应用程序。
所以我从现在开始用ANSI NULL ON
开始练习我的查询。
答案 1 :(得分:1)
SET ANSI NULLS ON
指定与Equals (=)
Not Equal To (<>)
和null values
比较运算符的 ISO兼容行为
关键点:由于设置ANSI NULLS主要处理数据库的ATOMICITY,您应该设置ANSI ANSI_NULLS ON
答案 2 :(得分:0)
正如documentation所述:
在SQL Server的未来版本中,ANSI_NULLS将始终为ON和 任何明确将选项设置为OFF的应用程序都将生成 一个错误。避免在新的开发工作和计划中使用此功能 修改当前使用此功能的应用程序。
ON
是默认值,与其他数据库兼容。除非你有一个非常非常好的理由,否则不要打扰它。