sql >> Database >  >> RDS >> Sqlserver

De ANSI_NULLS-instelling van een database vinden in SQL Server (T-SQL)

SQL Server heeft een ANSI_NULLS instelling die bepaalt hoe NULL waarden worden geëvalueerd in vergelijking met een andere waarde met de Equals (= ) en niet gelijk aan (<> ) vergelijkingsoperatoren.

Hoewel het waar is dat je de ANSI_NULLS . kunt wijzigen instelling op sessieniveau (met behulp van SET ANSI_NULLS ), heeft elke database ook zijn eigen ANSI_NULLS instelling.

U kunt uw database controleren om te zien of de ANSI_NULLS instelling is ON of OFF .

Om dit met T-SQL te doen, kunt u ofwel de sys.databases . gebruiken catalogusweergave of de DATABASEPROPERTYEX() functie.

De sys.databases Bekijk

De sys.databases catalogusweergave bevat veel informatie over elke database in uw SQL Server-instantie.

De volgende query retourneert de ANSI_NULLS instelling voor de Music databank:

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

Resultaat:

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

In dit geval ANSI_NULLS is ON voor deze database.

We kunnen het OFF zetten zoals dit:

ALTER DATABASE Music
SET ANSI_NULLS OFF;

U kunt de WHERE . verwijderen clausule bij gebruik van de sys.databases catalogusweergave om gegevens voor alle databases te retourneren. Zoals dit:

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

Deze weergave heeft ook een kolom met de naam is_ansi_null_default_on , die de ANSI_NULL_DEFAULT . retourneert instelling voor de database.

De ANSI_NULL_DEFAULT instelling bepaalt de standaardwaarde, NULL of NOT NULL , van een door de gebruiker gedefinieerd type kolom of CLR waarvoor de nullabiliteit niet expliciet is gedefinieerd in CREATE TABLE of ALTER TABLE verklaringen.

We zouden het vorige voorbeeld kunnen aanpassen om deze kolom op te nemen:

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

De DATABASEPROPERTYEX() Functie

Een andere manier om deze instellingen te controleren is met de DATABASEPROPERTYEX() functie.

Zo controleert u de ANSI_NULLS instelling voor de Music DB:

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

Resultaat:

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

Het is nu 0 voor OFF omdat ik het op OFF heb gezet in een eerder voorbeeld.

Om de ANSI_NULL_DEFAULT . te controleren instelling, doe dit:

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

Resultaat:

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

  1. Hoe een tabel exporteren als CSV met koppen op Postgresql?

  2. Oracle sql om instanties van verschillende waarden in één kolom te tellen

  3. Database-ontwerpconcepten met SQL Server Management Studio (SSMS) deel 1

  4. Meerdere CTE in één zoekopdracht