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 | +--------------------+