Что делает 'SET ANSI_NULLS ПРОЧЬ', делают?

Вы можете выполнить код на верхнем уровне urls.py. Этот модуль импортируется и выполняется один раз.

urls.py

from django.confs.urls.defaults import *
from your_script import one_time_startup_function

urlpatterns = ...

one_time_startup_function()
9
задан Michael Currie 1 October 2017 в 02:37
поделиться

2 ответа

Это изменяет путь NULLs ведут себя. NULLs в ANSI приводят к вещам как

NULL = NULL -> ложь

NULL <> NULL -> ложь

С ANSI_NULLS прочь, (NULL = NULL)-> верный.

11
ответ дан 4 December 2019 в 07:48
поделиться

Из MSDN:

Стандарт SQL-92 требует, что равняние (=) или не равное (<>) сравнение с нулевым значением оценивает ко ЛЖИ.

Когда SET ANSI_NULLS идет, использование оператора SELECT WHERE column_name = NULL возвраты обнуляют строки, даже если существуют нулевые значения в column_name. Использование оператора SELECT WHERE column_name <> NULL возвраты обнуляют строки, даже если существуют ненулевые значения в column_name.

Когда SET ANSI_NULLS ВЫКЛЮЧЕНО, Равняние (=) и Не Равен (<>), операторы сравнения не следуют стандарту SQL-92. Использование оператора SELECT WHERE column_name = NULL возвращает строки с нулевыми значениями в column_name. Использование оператора SELECT WHERE column_name <> NULL возвращает строки с ненулевыми значениями в столбце. Кроме того, использование оператора SELECT WHERE column_name <> XYZ_value возвраты все строки, которые не являются XYZ_value и которые не являются ПУСТЫМИ.

17
ответ дан 4 December 2019 в 07:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: