ANSI_NULLS 和 QUOTED_IDENTIFIER
1 ANSI_NULLS
当 SET ANSI_NULLS 为 ON 时,对空值进行等于 (=) 或不等于 (<>) 比较时取值为 FALSE
例如:SELECT * from table WHERE column_name = NULL 和 SELECT * from table WHERE column_name <> NULL
这个两个语句,不管column_name 中包含空值和非空值,返回的结果行都是 零行
当 SET ANSI_NULLS 为 OFF 时,情况就和上面描述相反了
数据库默认是 设置 SET ANSI_NULLS 为 ON 的
2 QUOTED_IDENTIFIER
当 SET QUOTED_IDENTIFIER 为 ON 时,标识符可以由双引号分隔,而文字必须由单引号分隔。
例如:
SET QUOTED_IDENTIFIER ON
SELECT * FROM "USER" WHERE a='netasp'
当SET QUOTDE_IDENTIFIER OFF时,双引号被解释为字符串的边界,和单引号的作用是类似的,所以不能用来分隔标识符,
可以用来分隔字符
例如:
SET QUOTED_IDENTIFIER ON
SELECT * FROM USER WHERE a='netasp' or a="netasp"