WHERE句などでのNULL値との比較も必ずFALSEが返ります。
ANSI_NULLSオプションは、WHERE句などでNULLとの比較を成立させるかどうかを指定できます。
下のT-SQLでNULL値との比較がTRUEかどうかでANSI_NULLSオプションを取得します。
- DECLARE @NULL_VALUE AS bit
- SET @NULL_VALUE = NULL
- IF NOT EXISTS(
- SELECT
- 'ANSI_NULLS = OFF'
- WHERE
- @NULL_VALUE = NULL
- )
- BEGIN
- SELECT 'ON' AS [ANSI_NULLS_OPTION]
- END
- ELSE
- BEGIN
- SELECT 'OFF' AS [ANSI_NULLS_OPTION]
- END
ただし、今後のSQL Serverでは、ANSI_NULLSは常にONとなり、
SET ANSI_NULLS OFF を設定するアプリケーションすべてでエラーが発生するようになってしまうそうです。
NULL値との条件指定をする時は必ず" IS NULL "を使うのがベストです。
詳細は下記URLを参照のこと。
SET ANSI_NULLS (Transact-SQL)
http://technet.microsoft.com/ja-jp/library/ms188048.aspx
ちょっと考えればわかるようなことを真顔で書くのが私です。
0 件のコメント:
コメントを投稿