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 | +--------------------+