Mit SET ANSI_NULLS wird das Verhalten mit NULL-Werten festgelegt, wenn innerhalb einer WHERE-Bedingung die Vergleichsoperatoren „=“ und „<>“ verwendet werden.
SET ANSI_NULLS ON mit der Bedingung WHERE MiddleName = NULL liefert keine Datensätze zurück.
SET ANSI_NULLS ON
SELECT Title, FirstName, MiddleName
FROM Person.Contact
WHERE MiddleName = NULL
Title FirstName MiddleName
-------- ----------------------------- --------------------------------------------------
(0 row(s) affected)
Die Bedingung für die Ermittlung der Datensätze mit NULL-Werten kann wie folgt aussehen:
SET ANSI_NULLS ON
SELECT Title, FirstName, MiddleName
FROM Person.Contact
WHERE MiddleName IS NULL
Title FirstName MiddleName
-------- ----------------------------- --------------------------------------------------
Mr. Gustavo NULL
Ms. Kim NULL
Sr. Humberto NULL
Sra. Pilar NULL
Mr. Jay NULL
Mr. François NULL
Ms. Kim NULL
Ms. Michelle NULL
Mr. Michael NULL
Mr. John NULL
...
(8499 row(s) affected)
SET ANSI_NULLS OFF mit der Bedingung WHERE MiddleName = NULL liefert die gleichen Datensätze wie WHERE MiddleName IS NULL zurück.
SET ANSI_NULLS OFF
SELECT Title, FirstName, MiddleName
FROM Person.Contact
WHERE MiddleName = NULL
Title FirstName MiddleName
-------- ----------------------------- --------------------------------------------------
Mr. Gustavo NULL
Ms. Kim NULL
Sr. Humberto NULL
Sra. Pilar NULL
Mr. Jay NULL
Mr. François NULL
Ms. Kim NULL
Ms. Michelle NULL
Mr. Michael NULL
Mr. John NULL
...
(8499 row(s) affected)
In SQL-Server 2005-Dokumentation wird drauf hingewiesen, dass dieses Feature in einer zukünftigen Version von Microsoft SQL Server entfernt wird. Daher wird empfohlen, dieses Feature bei neuen Anwendungen nicht zu verwenden.
No comments:
Post a Comment