SET ANSI_NULLS ON

      這些是 SQL-92 設置語句,使 SQL Server 2000/2005 遵從 SQL-92 規則。

      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 的行。

小結:

SET ANSI_NULLS ON 針對空值null使用SQL-92規則,即:判斷字段是否爲空 不能使用 =、<>。使用這兩個符號返回都爲false。

SET ANSI_NULLS OFF 使用Transact-SQL規則,可使用=、<> 來判斷字段是否爲空。

ANSI:abbr. 美國國家標準學會( American National Standards Institute)。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章