Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Как да намерите настройката ANSI_NULLS на базата данни в SQL Server (T-SQL)

SQL Server има ANSI_NULLS настройка, която определя как NULL Стойностите се оценяват, когато се сравняват с друга стойност с Equals (= ) и не е равно на (<> ) оператори за сравнение.

Въпреки че е вярно, че можете да промените ANSI_NULLS настройка на ниво сесия (използвайки SET ANSI_NULLS ), всяка база данни също има свой собствен ANSI_NULLS настройка.

Можете да проверите вашата база данни, за да видите дали е ANSI_NULLS настройката е ON или OFF .

За да направите това с T-SQL, можете да използвате или sys.databases изглед на каталог или DATABASEPROPERTYEX() функция.

sys.databases Преглед

sys.databases изгледът на каталог съдържа много информация за всяка база данни във вашия екземпляр на SQL Server.

Следната заявка връща 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 , от колона или CLR дефиниран от потребителя тип, за който възможността за нулиране не е изрично дефинирана в CREATE TABLE или 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                  |
+--------------------+

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Името на колоната или броят на предоставените стойности не съответстват на дефиницията на таблицата

  2. неразрешена препратка към обект [INFORMATION_SCHEMA].[TABLES]

  3. Как да се свържете с база данни от Unity

  4. Как работи функцията CHAR() в SQL Server (T-SQL)

  5. Грешка в SQL сървъра:низови или двоични данни ще бъдат съкратени