我发了一个查询
SELECT * FROM tblEmp WHERE emp_id = 9737 AND mgr_id = NULL
并且它没有返回任何值。直到昨天它才这样做。什么可能改变?我们很多人在同一台服务器上工作,所以有可能有人改变了一些东西。
要获得结果,我必须开火
SELECT * FROM tblEmp WHERE emp_id = 9737 AND mgr_id IS NULL
正在提供适当的输出。
由于我在.Net
中使用此查询,我担心如果将设置重置为上一个设置时它会中断。会吗?
答案 0 :(得分:6)
将SQL Server的ANSI_NULLS功能设置为OFF
将允许您编写mgr_id = NULL
并将其评估为TRUE。
然而,以这种方式比较NULL是不好的做法。大多数RDBMS都不允许这样做,大多数DBA不会以这种方式编写查询,并且ANSI_NULLS
设置已被弃用了很长时间并且将被强制 {{1将来。
答案 1 :(得分:0)
嗨,
Null不是值,因此您不能使用=运算符。您应该使用是null 功能,因此它可以正常工作