Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Comment trouver le paramètre ANSI_NULLS d'une base de données dans SQL Server (T-SQL)

SQL Server a un ANSI_NULLS paramètre qui détermine comment NULL les valeurs sont évaluées lorsqu'elles sont comparées à une autre valeur avec l'égalité (= ) et Différent de (<> ) opérateurs de comparaison.

S'il est vrai que vous pouvez modifier le ANSI_NULLS réglage au niveau de la session (en utilisant SET ANSI_NULLS ), chaque base de données possède également son propre ANSI_NULLS réglage.

Vous pouvez vérifier votre base de données pour voir si son ANSI_NULLS le réglage est ON ou OFF .

Pour ce faire avec T-SQL, vous pouvez soit utiliser le sys.databases vue catalogue ou le DATABASEPROPERTYEX() fonction.

Les sys.databases Afficher

Les sys.databases La vue catalogue contient de nombreuses informations sur chaque base de données de votre instance SQL Server.

La requête suivante renvoie le ANSI_NULLS paramètre pour la Music base de données :

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

Résultat :

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

Dans ce cas, ANSI_NULLS est ON pour cette base de données.

Nous pouvons le désactiver OFF comme ceci :

ALTER DATABASE Music
SET ANSI_NULLS OFF;

Vous pouvez éliminer le WHERE clause lors de l'utilisation de sys.databases vue catalogue pour renvoyer les données de toutes les bases de données. Comme ceci :

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

Cette vue a également une colonne appelée is_ansi_null_default_on , qui renvoie le ANSI_NULL_DEFAULT paramètre pour la base de données.

Le ANSI_NULL_DEFAULT paramètre détermine la valeur par défaut, NULL ou NOT NULL , d'une colonne ou d'un type CLR défini par l'utilisateur pour lequel la possibilité de valeur nulle n'est pas explicitement définie dans CREATE TABLE ou ALTER TABLE déclarations.

Nous pourrions modifier l'exemple précédent pour inclure cette colonne :

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

Le DATABASEPROPERTYEX() Fonction

Une autre façon de vérifier ces paramètres est avec le DATABASEPROPERTYEX() fonction.

Voici comment vérifier le ANSI_NULLS paramètre pour la Music BD :

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

Résultat :

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

C'est maintenant 0 pour OFF parce que je l'ai réglé sur OFF dans un exemple précédent.

Pour vérifier le ANSI_NULL_DEFAULT paramètre, procédez comme suit :

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

Résultat :

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