Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jak znaleźć ustawienie ANSI_NULLS bazy danych w SQL Server (T-SQL)

SQL Server ma ANSI_NULLS ustawienie określające jak NULL wartości są oceniane w porównaniu z inną wartością z równaniem (= ) i Nie równa się (<> ) operatory porównania.

Chociaż prawdą jest, że możesz zmienić ANSI_NULLS ustawienie na poziomie sesji (za pomocą SET ANSI_NULLS ), każda baza danych ma również swój własny ANSI_NULLS ustawienie.

Możesz sprawdzić swoją bazę danych, aby zobaczyć, czy jest w niej ANSI_NULLS ustawienie jest ON lub OFF .

Aby to zrobić za pomocą T-SQL, możesz użyć sys.databases widok katalogu lub DATABASEPROPERTYEX() funkcja.

Bazy sys.databases Zobacz

sys.databases Widok katalogu zawiera wiele informacji o każdej bazie danych w instancji SQL Server.

Następujące zapytanie zwraca ANSI_NULLS ustawienie dla Music baza danych:

SELECT is_ansi_nulls_on 
FROM sys.databases
WHERE name = 'Music';

Wynik:

+--------------------+
| is_ansi_nulls_on   |
|--------------------|
| 1                  |
+--------------------+

W tym przypadku ANSI_NULLS jest ON dla tej bazy danych.

Możemy go wyłączyć OFF tak:

ALTER DATABASE Music
SET ANSI_NULLS OFF;

Możesz wyeliminować WHERE klauzula podczas korzystania z sys.databases widok katalogu, aby zwrócić dane dla wszystkich baz danych. Tak:

SELECT 
    name,
    is_ansi_nulls_on 
FROM sys.databases
ORDER BY name ASC;

Ten widok ma również kolumnę o nazwie is_ansi_null_default_on , który zwraca ANSI_NULL_DEFAULT ustawienia dla bazy danych.

ANSI_NULL_DEFAULT ustawienie określa wartość domyślną, NULL lub NOT NULL , kolumny lub typu zdefiniowanego przez użytkownika w środowisku CLR, dla którego dopuszczalność wartości null nie jest jawnie zdefiniowana w CREATE TABLE lub ALTER TABLE oświadczenia.

Moglibyśmy zmodyfikować poprzedni przykład, aby uwzględnić tę kolumnę:

SELECT
    name,
    is_ansi_nulls_on,
    is_ansi_null_default_on
FROM sys.databases
ORDER BY name ASC;

DATABASEPROPERTYEX() Funkcja

Innym sposobem sprawdzenia tych ustawień jest użycie DATABASEPROPERTYEX() funkcja.

Oto jak sprawdzić ANSI_NULLS ustawienie dla Music DB:

SELECT DATABASEPROPERTYEX('Music','IsAnsiNullsEnabled');

Wynik:

+--------------------+
| (No column name)   |
|--------------------|
| 0                  |
+--------------------+

Teraz jest 0 dla OFF ponieważ ustawiłem go na OFF w poprzednim przykładzie.

Aby sprawdzić ANSI_NULL_DEFAULT ustawienie, zrób to:

SELECT DATABASEPROPERTYEX('Music','IsAnsiNullDefault');

Wynik:

+--------------------+
| (No column name)   |
|--------------------|
| 1                  |
+--------------------+

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Rozwiązywanie problemów z błędem Microsoft SQL Server 18456

  2. Nieemocjonalne logiczne spojrzenie na konwencje nazewnictwa SQL Server

  3. Agregacja ciągów na przestrzeni lat w SQL Server

  4. Do czego służą nawiasy kwadratowe [] w instrukcjach sql?

  5. Jak wyłączyć wszystkie ograniczenia wyboru i kluczy obcych w bazie danych w programie SQL Server (przykłady T-SQL)