SET ANSI_NULLS OFF
是做什麼用的?`SET ANSI_NULLS OFF`做什麼?
回答
的SQL-92標準要求一個等於(=)或不等於對一個空值(<>)比較計算結果爲FALSE。當SET ANSI_NULLS爲ON時,即使column_name中存在空值,使用WHERE column_name = NULL的SELECT語句也會返回零行。即使列名中存在非空值,使用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值且不爲NULL的所有行。
它改變了NULL
的行爲方式。 NULL
S IN ANSI產量之類的東西
NULL = NULL
- >假
NULL <> NULL
- >假
ANSI_NULLS
隨着關閉,(NULL = NULL
) - >真。
當它然後不計算空值並返回0
當開啓時,將一個值具有空返回比較的任何查詢一個0
實施例: SET ANSI_NULLS ON SELECT empname FROM emp1 WHERE phone = NULL
說明: 它將不返回任何內容,因爲SET ANSI_NULLS爲ON。
來源:
http://www.xpode.com/ShowArticle.aspx?ArticleId=599
感謝,
羅希特
SET ANSI_NULLS OFF
指示服務器,以評估使用非標準語義涉及NULL
語句。
SET ANSI_NULLS OFF;
SELECT CASE WHEN NULL = NULL THEN 1 ELSE 0 END; -- Evaluates to 1 (bad!)
SET ANSI_NULLS ON;
SELECT CASE WHEN NULL = NULL THEN 1 ELSE 0 END; -- Evaluates to 0 (good!)
你應該從來沒有創造新的代碼用的SET ANSI_NULLS OFF
因爲非標準語義設置:
- 這是從來沒有必要,
- 數據庫查詢與豐富的語義表現當
NULL
與任何其他值(例如在WHERE
子句中)的處理方式不同時發生,與NULL
比較的值應始終返回False/UNKNOWN, - 它使代碼更難以維護,因爲開發人員可能沒有意識到它正在使用非標準設置,或被它弄糊塗,並且
- Microsoft has warned在未來版本的SQL Server中,該設置將導致顯式錯誤。
- 1. 如何處理SET ANSI_NULLS ON或OFF?
- 2. SQL 「ANSI_NULLS OFF」 比較
- 3. 'set - $ REPLY'是做什麼的?
- 4. set standardElementConstraints = false做什麼?
- 5. '--set-upstream'是做什麼的?
- 6. SET NODE_ENV = dev做什麼?
- 7. 爲什麼Ansi_nulls不起作用?
- 8. Spring Form Tags set autocapitalize =「off」
- 9. SET的範圍ANSI_WARNINGS OFF
- 10. SET NOCOUNT OFF或RETURN @@ ROWCOUNT?
- 11. SQL server 2008 - SET QUOTED_IDENTIFIER OFF
- 12. vim中`yy`與`set clipboard = unnamedplus`做什麼?
- 13. 如何爲ADO.NET中的查詢設置ANSI_NULLS ON或OFF?
- 14. SQL Server中的ANSI_NULLS標誌?
- 15. 爲什麼#pragma optimize(「」,off)
- 16. Apache Spark Time基於Kafka off set
- 17. SQL Server 2008 SET QUOTED_IDENTIFIER OFF問題
- 18. ANSI_NULLS和QUOTED_IDENTIFIER行爲
- 19. ADO.NET:當SET NOCOUNT OFF時我可以使用什麼API來獲取消息
- 20. 如何遠程更改ANSI_NULLS或使用ANSI_NULLS設置關閉的遷移過程
- 21. SET XACT_ABORT OFF如果交易由SET終止XACT_ABORT ON
- 22. ANSI_NULLS如何在TSQL中工作?
- 23. 爲什麼MySQL(和MsSQL)沒有實現ANSI_NULLS?
- 24. 關鍵字Set在VBA中實際做了什麼?
- 25. PyDev中的'Set Next Statement'按鈕是做什麼的?
- 26. 'setters'(set-methods)有什麼用?
- 27. set :: end ++的值是什麼?
- 28. `std :: set`有什麼問題?
- 29. $ {VARIABLE + set}是什麼意思?
- 30. _mm_set_epi8 - 「set」是什麼意思?
谷歌搜索SET ANSI NULLS ON的第一個結果。你會認爲搜索它比在這裏發佈問題更快。 – 2009-01-04 23:05:28