Проблемма с ANSI_NULLS в MS SQL 7.0

real_mym
Дата: 15.08.2000 19:51:33
Если в качестве теста исполнить:

SET ANSI_NULLS OFF
SELECT name FROM users WHERE name = name

то должны вернуться все записи из таблицы, на
практике же я получаю только поля с не NULL name.
При этом

SET ANSI_NULLS OFF
SELECT name FROM users WHERE name = NULL

работает правильно.

Кто знает в чём дело?
judge
Дата: 23.08.2000 07:40:46
Дело в том, флаг ANSI_NULLS влияет на то, как SQL Server обрабатывает сравнения значений с NULL.

Когда ANSI_NULLS установлен - MSSQL сравнивает в соответствии со стандартом SQL-92, по которому сравнение любого значения с NULL равно FALSE, даже если NULL сравнивается c NULL результат все равно будет FALSE.

В случае, если ANSI_NULLS не установлен - то результатом сравнения NULL с NULL будет TRUE.

Успехов, Александр.