在SQL Server 数据库中存储过程、视图开始都会有一个SET QUOTED_IDENTIFIER OFF的语句,原来作用是这样的

当SET QUOTED_IDENTIFIER为ON 时,标识符可以由双引号分隔,而文字必须由单引号分隔。当SET QUOTED_IDENTIFIER为OFF时,标识符不可加引号,且必须符合所有Transact-SQL标识符规则

SQL-92标准要求在对空值进行等于 (=) 或不等于 (<>) 比较时取值为 FALSE。当SET ANSI_NULLS 为ON时,即使column_name中包含空值,使用WHERE column_name = NULL的SELECT 语句仍返回零行。即使column_name中包含非空值,使用WHERE column_name <> NULL的SELECT语句仍会返回零行。

当SET ANSI_NULLS为OFF时,等于 (=) 和不等于 (<>) 比较运算符不遵从SQL-92标准。使用WHERE column_name = NULL的SELECT语句返回column_name 中包含空值的行。使用 WHERE column_name <> NULL 的 SELECT 语句返回列中包含非空值的行。此外,使用WHERE column_name <> XYZ_value 的 SELECT 语句返回所有不为 XYZ_value 也不为 NULL 的行。

墨者看遍天下皆是丹青,测试看尽万物皆是bug
原文地址:https://www.cnblogs.com/striver-dl/p/13914118.html