SQLServerにはANSI_NULLSがあります NULLの方法を決定する設定 Equals(=)を使用して別の値と比較すると、値が評価されます。 )および等しくない(<> )比較演算子。
ANSI_NULLSを変更できるのは事実ですが セッションレベルでの設定(SET ANSI_NULLSを使用) )、各データベースにも独自のANSI_NULLSがあります 設定。
データベースをチェックして、そのANSI_NULLSかどうかを確認できます。 設定はON またはOFF 。
T-SQLでこれを行うには、sys.databasesを使用できます。 カタログビューまたはDATABASEPROPERTYEX() 機能。
sys.databases 表示
sys.databases カタログビューには、SQLServerインスタンスの各データベースに関する多くの情報が含まれています。
次のクエリは、ANSI_NULLSを返します Musicの設定 データベース:
SELECT is_ansi_nulls_on
FROM sys.databases
WHERE name = 'Music'; 結果:
+--------------------+ | is_ansi_nulls_on | |--------------------| | 1 | +--------------------+
この場合、ANSI_NULLS ONです このデータベース用。
OFFにすることができます このように:
ALTER DATABASE Music
SET ANSI_NULLS OFF;
WHEREを削除できます sys.databasesを使用する場合の句 すべてのデータベースのデータを返すカタログビュー。このように:
SELECT
name,
is_ansi_nulls_on
FROM sys.databases
ORDER BY name ASC;
このビューには、is_ansi_null_default_onという列もあります。 、ANSI_NULL_DEFAULTを返します データベースの設定。
ANSI_NULL_DEFAULT 設定により、デフォルト値NULLが決まります またはNOT NULL 、CREATE TABLEでnull可能性が明示的に定義されていない列またはCLRユーザー定義型の またはALTER TABLE ステートメント。
前の例を変更して、この列を含めることができます:
SELECT
name,
is_ansi_nulls_on,
is_ansi_null_default_on
FROM sys.databases
ORDER BY name ASC; DATABASEPROPERTYEX() 機能
これらの設定を確認する別の方法は、DATABASEPROPERTYEX()を使用することです。 機能。
ANSI_NULLSを確認する方法は次のとおりです Musicの設定 DB:
SELECT DATABASEPROPERTYEX('Music','IsAnsiNullsEnabled'); 結果:
+--------------------+ | (No column name) | |--------------------| | 0 | +--------------------+
現在は0 OFFの場合 OFFに設定したので 前の例で。
ANSI_NULL_DEFAULTを確認するには 設定、これを行います:
SELECT DATABASEPROPERTYEX('Music','IsAnsiNullDefault'); 結果:
+--------------------+ | (No column name) | |--------------------| | 1 | +--------------------+