Was macht SET ANSI_NULLS OFF
?Was bewirkt `SET ANSI_NULLS OFF`?
Antwort
Das erfordert SQL-92-Standard, dass ein Gleichheits (=) oder ungleich (<>) Vergleich gegen einen Nullwert auf FALSE auswertet. Wenn SET ANSI_NULLS auf ON gesetzt ist, gibt eine SELECT-Anweisung, die WHERE column_name = NULL verwendet, null Zeilen zurück, selbst wenn in column_name Nullwerte vorhanden sind. Eine SELECT-Anweisung, die WHERE column_name <> NULL verwendet, gibt Nullzeilen zurück, auch wenn in Spalte_name nichtnull Werte sind.
Wenn SET ANSI_NULLS auf OFF gesetzt ist, folgen die Vergleichsoperatoren Equals (=) und Not Equal To (<>) nicht dem SQL-92-Standard. Eine SELECT-Anweisung mit WHERE column_name = NULL gibt die Zeilen mit null-Werten in column_name zurück. Eine SELECT-Anweisung mit WHERE column_name <> NULL gibt die Zeilen mit Nonnull-Werten in der Spalte zurück. Außerdem gibt eine SELECT-Anweisung, die WHERE spaltenname <> XYZ_value verwendet, alle Zeilen zurück, die nicht XYZ-Wert sind und die nicht NULL sind.
Es ändert sich die Art und Weise NULL
s verhalten. NULL
s in ANSI Ausbeute Dinge wie
NULL = NULL
-> false
NULL <> NULL
-> false
Mit ANSI_NULLS
off (NULL = NULL
) -> true.
wenn man darauf dann nicht die NULL-Werte zählen kann und das Rück 0.
Wenn diese eingeschaltet ist, jede Abfrage, die einen Wert mit einer Null vergleicht kehrt a 0
Beispiel: ON SET ANSI_NULLS SELECT empname FROM emp1 WHERE Telefon = NULL
Erläuterung: Es wird nichts zurückgegeben, da SET ANSI_NULLS auf ON gesetzt ist.
Quelle:
http://www.xpode.com/ShowArticle.aspx?ArticleId=599
Danke,
Rohit
SET ANSI_NULLS OFF
weist den Server Aussagen zu bewerten Einbeziehung NULL
Nicht-Standard-Semantik.
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!)
Sie sollen nie neuen Code erstellen mit der Nicht-Standard-Semantik Einstellung von SET ANSI_NULLS OFF
weil:
- Es ist nie notwendig,
- Für Datenbankabfragen mit der reichen Semantik verhalten Wenn
NULL
anders als jeder andere Wert behandelt wird (z. B. in einerWHERE
-Klausel), sollten Werte, die mitNULL
verglichen werden, immer False/UNKNOWN, , zurückgeben
- Es macht Code, der schwieriger zu warten ist, da Entwickler möglicherweise nicht erkennen, dass die nicht standardmäßige Einstellung verwendet wird, oder
- Microsoft has warned dass in einer zukünftigen Version von SQL Server die Einstellung einen expliziten Fehler verursacht .
- 1. Wie geht man mit SET ANSI_NULLS ON oder OFF?
- 2. pg_restore: [Archivierungs (db)] SET row_security = off
- 3. Set IDENTITY_INSERT OFF für alle Tabellen
- 4. SET SCAN OFF mit Thin Driver
- 5. Was bewirkt RxJS.Observable Entprellen?
- 6. Was bewirkt VS-Projektbindung?
- 7. Was bewirkt charCodeAt (...) & 0xff?
- 8. Was bewirkt eigentlich ein Filter?
- 9. Was bewirkt "Zoom" in CSS?
- 10. Was bewirkt "*" in regulären Ausdrücken?
- 11. was bewirkt, dass imagecreatetruecolor() fehlschlägt?
- 12. Was bewirkt "$" in C# 6.0?
- 13. Was bewirkt `session.entropy_length` in` PHP.ini`?
- 14. Was bewirkt, dass IE8 einige Dateidownloads blockiert?
- 15. Was bewirkt dieser thread_local RNG-Samen?
- 16. SET OPTIONS .... wo sie
- 17. Unterschied zwischen "@echo off" und "@echo% off"?
- 18. Was sind die Fehler beim Einstellen von enable_nestloop auf OFF
- 19. Was bewirkt die ShadowCopyFiles-Eigenschaft in appdomain?
- 20. Was bewirkt, dass WriteFile ERROR_ACCESS_DENIED zurückgibt?
- 21. Was bewirkt die letzte Variablendeklaration in Methoden?
- 22. Was bewirkt ein Ausrufezeichen (!) Vor einer Objektreferenzvariablen?
- 23. Was bewirkt das -all_load-Linker-Flag?
- 24. n & (n-1) Was bewirkt dieser Ausdruck?
- 25. Was bewirkt, dass Android ContentResolver.query() null zurückgibt?
- 26. Was bewirkt die Variable DOCKER_TLS_VERIFY und DOCKER_CERT_PATH?
- 27. Was bewirkt `overflow: hidden` im folgenden Beispiel?
- 28. Was bewirkt setWidth ("*") in CSS/SmartGWT?
- 29. Was bewirkt das Call-Schlüsselwort in VB6?
- 30. Was bewirkt das Schlüsselwort 'in' in F #?
Das allererste Ergebnis in einer Google-Suche nach SET ANSI NULL ON. Sie würden denken, es wäre schneller, danach zu suchen, als hier eine Frage zu stellen. –
Genau so habe ich es gefunden. : D – dkretz
Diese Antwort sollte nicht abgestimmt werden, bis es behoben ist - es sollte nicht nur auf die Informationen verweisen, es sollte auch zitiert werden. Ist es nicht der Sinn von SO? – Paulius