SQL Server hat einen ANSI_NULLS Einstellung, die bestimmt, wie NULL Werte werden beim Vergleich mit einem anderen Wert mit dem Equals (= ) und Ungleich (<> ) Vergleichsoperatoren.
Es stimmt zwar, dass Sie ANSI_NULLS ändern können Einstellung auf Sitzungsebene (mithilfe von SET ANSI_NULLS ), hat jede Datenbank auch ihren eigenen ANSI_NULLS Einstellung.
Sie können Ihre Datenbank überprüfen, um zu sehen, ob sie ANSI_NULLS ist Einstellung ist ON oder OFF .
Um dies mit T-SQL zu tun, können Sie entweder die sys.databases verwenden Katalogansicht oder DATABASEPROPERTYEX() Funktion.
Die sys.databases Anzeigen
Die sys.databases Die Katalogansicht enthält viele Informationen zu jeder Datenbank in Ihrer SQL Server-Instanz.
Die folgende Abfrage gibt ANSI_NULLS zurück Einstellung für die Music Datenbank:
SELECT is_ansi_nulls_on
FROM sys.databases
WHERE name = 'Music'; Ergebnis:
+--------------------+ | is_ansi_nulls_on | |--------------------| | 1 | +--------------------+
In diesem Fall ANSI_NULLS ist ON für diese Datenbank.
Wir können es OFF ausschalten so:
ALTER DATABASE Music
SET ANSI_NULLS OFF;
Sie können das WHERE weglassen -Klausel bei Verwendung von sys.databases Katalogansicht, um Daten für alle Datenbanken zurückzugeben. So:
SELECT
name,
is_ansi_nulls_on
FROM sys.databases
ORDER BY name ASC;
Diese Ansicht hat auch eine Spalte namens is_ansi_null_default_on , der ANSI_NULL_DEFAULT zurückgibt Einstellung für die Datenbank.
Der ANSI_NULL_DEFAULT Die Einstellung bestimmt den Standardwert, NULL oder NOT NULL , eines Spalten- oder CLR-benutzerdefinierten Typs, für den die NULL-Zulässigkeit nicht explizit in CREATE TABLE definiert ist oder ALTER TABLE Aussagen.
Wir könnten das vorherige Beispiel so ändern, dass es diese Spalte enthält:
SELECT
name,
is_ansi_nulls_on,
is_ansi_null_default_on
FROM sys.databases
ORDER BY name ASC; Der DATABASEPROPERTYEX() Funktion
Eine andere Möglichkeit, diese Einstellungen zu überprüfen, ist mit DATABASEPROPERTYEX() Funktion.
So prüfen Sie den ANSI_NULLS Einstellung für die Music DB:
SELECT DATABASEPROPERTYEX('Music','IsAnsiNullsEnabled'); Ergebnis:
+--------------------+ | (No column name) | |--------------------| | 0 | +--------------------+
Es ist jetzt 0 für OFF weil ich es auf OFF gesetzt habe in einem vorherigen Beispiel.
Um den ANSI_NULL_DEFAULT zu überprüfen tun Sie dies:
SELECT DATABASEPROPERTYEX('Music','IsAnsiNullDefault'); Ergebnis:
+--------------------+ | (No column name) | |--------------------| | 1 | +--------------------+