SQL Server má ANSI_NULLS nastavení, které určuje, jak NULL hodnoty jsou vyhodnoceny při porovnání s jinou hodnotou s hodnotou Rovná se (= ) a Nerovná se (<> ) operátory porovnání.
I když je pravda, že ANSI_NULLS můžete změnit nastavení na úrovni relace (pomocí SET ANSI_NULLS ), každá databáze má také svůj vlastní ANSI_NULLS nastavení.
Můžete zkontrolovat svou databázi a zjistit, zda je ANSI_NULLS nastavení je ON nebo OFF .
Chcete-li to provést pomocí T-SQL, můžete použít sys.databases zobrazení katalogu nebo DATABASEPROPERTYEX() funkce.
sys.databases Zobrazit
Soubor sys.databases zobrazení katalogu obsahuje mnoho informací o každé databázi ve vaší instanci SQL Server.
Následující dotaz vrátí ANSI_NULLS nastavení pro Music databáze:
SELECT is_ansi_nulls_on
FROM sys.databases
WHERE name = 'Music'; Výsledek:
+--------------------+ | is_ansi_nulls_on | |--------------------| | 1 | +--------------------+
V tomto případě ANSI_NULLS je ON pro tuto databázi.
Můžeme jej OFF takhle:
ALTER DATABASE Music
SET ANSI_NULLS OFF;
Můžete odstranit WHERE klauzule při použití sys.databases zobrazení katalogu pro vrácení dat pro všechny databáze. Takhle:
SELECT
name,
is_ansi_nulls_on
FROM sys.databases
ORDER BY name ASC;
Tento pohled má také sloupec nazvaný is_ansi_null_default_on , která vrací ANSI_NULL_DEFAULT nastavení pro databázi.
ANSI_NULL_DEFAULT nastavení určuje výchozí hodnotu NULL nebo NOT NULL , sloupec nebo uživatelsky definovaný typ CLR, pro který není možnost null explicitně definována v CREATE TABLE nebo ALTER TABLE prohlášení.
Předchozí příklad bychom mohli upravit tak, aby zahrnoval tento sloupec:
SELECT
name,
is_ansi_nulls_on,
is_ansi_null_default_on
FROM sys.databases
ORDER BY name ASC; DATABASEPROPERTYEX() Funkce
Dalším způsobem, jak zkontrolovat tato nastavení, je DATABASEPROPERTYEX() funkce.
Zde je návod, jak zkontrolovat ANSI_NULLS nastavení pro Music DB:
SELECT DATABASEPROPERTYEX('Music','IsAnsiNullsEnabled'); Výsledek:
+--------------------+ | (No column name) | |--------------------| | 0 | +--------------------+
Nyní je 0 pro OFF protože jsem to nastavil na OFF v předchozím příkladu.
Chcete-li zkontrolovat ANSI_NULL_DEFAULT nastavení, proveďte toto:
SELECT DATABASEPROPERTYEX('Music','IsAnsiNullDefault'); Výsledek:
+--------------------+ | (No column name) | |--------------------| | 1 | +--------------------+