Cosa fa SET ANSI_NULLS OFF
?Cosa fa `SET ANSI_NULLS OFF`?
risposta
Lo standard SQL-92 richiede che un uguale (=) o meno uguale a (<>) confronto con un valore nullo restituisce false. Quando SET ANSI_NULLS è ON, un'istruzione SELECT che utilizza WHERE column_name = NULL restituisce zero righe anche se esistono valori null in column_name. Un'istruzione SELECT che utilizza WHERE nome_colonna <> NULL restituisce zero righe anche se non ci sono valori non nulli in column_name.
Quando SET ANSI_NULLS è OFF, gli operatori di confronto Equals (=) e Not Equal To (<>) non seguono lo standard SQL-92. Un'istruzione SELECT che utilizza WHERE column_name = NULL restituisce le righe con valori null in column_name. Un'istruzione SELECT che utilizza WHERE nome_colonna <> NULL restituisce le righe con valori non nulli nella colonna. Inoltre, un'istruzione SELECT che utilizza WHERE nome_colonna <> XYZ_value restituisce tutte le righe che non sono il valore XYZ e che non sono NULL.
Cambia il comportamento di NULL
s. NULL
s in cose rendimento ANSI come
NULL = NULL
-> false
NULL <> NULL
-> false
Con ANSI_NULLS
off, (NULL = NULL
) -> vero.
Quando sulla allora non contano i valori Null e tornare 0.
Quando questo è attivo, tutte le query che confronta un valore con un null restituisce un 0
Esempio: SET ANSI_NULLS ON SELECT empname FROM emp1 WHERE telefono = NULL
Spiegazione: Non restituirà nulla perché SET ANSI_NULLS è ON.
Fonte:
http://www.xpode.com/ShowArticle.aspx?ArticleId=599
Grazie,
Rohit
SET ANSI_NULLS OFF
indica al server di valutare le dichiarazioni che coinvolgono NULL
utilizzando la semantica non standard.
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!)
si dovrebbe mai creare nuovo codice con con l'impostazione semantica non-standard di SET ANSI_NULLS OFF
perché:
- Non è mai necessario,
- Per le query di database di comportarsi con i ricchi semantica che si verificano quando
NULL
viene trattato in modo diverso da qualsiasi altro valore (ad esempio in una clausolaWHERE
), i valori confrontati conNULL
devono sempre restituire False/SCONOSCIUTO, - Rende il codice più difficile da mantenere poiché gli sviluppatori potrebbero non capire che sta utilizzando l'impostazione non standard o essere confuso da esso e
- Microsoft has warned che in una versione futura di SQL Server l'impostazione causerà un errore esplicito .
- 1. Come gestire SET ANSI_NULLS su ON o OFF?
- 2. SET SCAN OFF scopo
- 3. UISwitch set on/off immagine
- 4. Le query eterogenee richiedono ANSI_NULLS
- 5. pg_restore: [Archiver (db)] SET row_security = off
- 6. Perché SQL Server deprecating SET ANSI_PADDING OFF?
- 7. SET NOCOUNT OFF o RETURN @@ ROWCOUNT?
- 8. Cosa fa% ~ 1 in questo file batch?
- 9. Cosa fa UpdateModel()?
- 10. AutoFac: cosa fa PropertyWiringFlags.AllowCircularDependencies?
- 11. Cosa fa?
- 12. Cosa fa [:]?
- 13. Cosa fa mysqli_store_result() Effettivamente?
- 14. Cosa fa l'operatore | = fa in JavaScript?
- 15. Cosa fa scanner.close()?
- 16. IDENTITY_INSERT è impostato su OFF - Come accenderlo?
- 17. Cosa fa effettivamente "__COMPAT_LAYER"?
- 18. Cosa fa Collections.unmodifiableSet() in Java?
- 19. Tensorflow: cosa fa tf.nn.separable_conv2d?
- 20. Marker off-set su Google Map API v3
- 21. Cosa fa @NSManaged?
- 22. Che cosa fa esattamente @synthesize?
- 23. Che cosa significa ON [PRIMARY]?
- 24. Cosa significa $ {VARIABLE + set}?
- 25. Cosa fa "12345" + 2 fa in C?
- 26. Cosa fa -webkit-text-size-adjust fa?
- 27. Cosa fa aspnet_regiis.exe
- 28. Cosa fa System.Concurrency.AsyncLock?
- 29. Cosa fa questo codice?
- 30. Cosa fa addActionListener?
Il primo risultato in una ricerca di Google SET ANSI NULLS ON. Penseresti che sarebbe più veloce cercarlo anziché pubblicare una domanda qui. –
È esattamente come l'ho trovato io stesso. : D – dkretz
Questa risposta non dovrebbe essere revocata, fino a quando non viene risolta: non dovrebbe semplicemente collegarsi alle informazioni, ma dovrebbe anche citarla. Non è questo il punto di SO? – Paulius