Skip to content
Menu
Knihy-blog
Knihy-blog
décembre 20, 2021

SET ANSI_NULLS

Spécifie le comportement conforme à SQL-92 des opérateurs de comparaison Égaux (=) et Non égaux à (< >) lorsqu’ils sont utilisés avec des valeurs nulles.

  • Syntaxe
  • Remarques
  • Autorisations
  • Exemples
  • Voir Aussi
Syntaxe

SET ANSI_NULLS {ON/OFF}

Remarques

La norme SQL-92 exige qu’une comparaison égale (=) ou non égale à (< >) par rapport à une valeur nulle soit évaluée à FALSE. Lorsque SET ANSI_NULLS est ACTIVÉ, une instruction SELECT utilisant WHERE column_name=NULL renvoie zéro ligne même s’il y a des valeurs nulles dans column_name. Une instruction SELECT utilisant WHERE column_name < > NULL renvoie zéro ligne même s’il y a des valeurs non complètes dans column_name.

Lorsque SET ANSI_NULLS est DÉSACTIVÉ, les opérateurs de comparaison Égaux (=) et Non Égaux à (< >) ne suivent pas la norme SQL-92. Une instruction SELECT utilisant WHERE column_name=NULL renvoie les lignes avec des valeurs nulles dans column_name. Une instruction SELECT utilisant WHERE column_name < > NULL renvoie les lignes avec des valeurs nonnull dans la colonne. De plus, une instruction SELECT utilisant WHERE column_name < > XYZ_value renvoie toutes les lignes qui ne sont pas de valeur XYZ et qui ne sont pas NULLES.

Remarque Le paramètre de niveau de compatibilité de sp_dbcmptlevel détermine si Microsoft® SQL Server™ interprète une chaîne vide comme un espace unique ou comme une vraie chaîne vide. Si le niveau de compatibilité est inférieur ou égal à 65, SQL Server interprète les chaînes vides comme des espaces uniques. Si le niveau de compatibilité est égal à 70, SQL Server interprète les chaînes vides comme des chaînes vides. Pour plus d’informations, consultez sp_dbcmptlevel.

Lorsque SET ANSI_NULLS est ACTIVÉ, toutes les comparaisons avec une valeur null sont évaluées à UNKNOWN. Lorsque SET ANSI_NULLS est DÉSACTIVÉ, les comparaisons de toutes les données par rapport à une valeur null s’évaluent à TRUE si la valeur des données est NULLE. S’il n’est pas spécifié, le paramètre de l’option ANSI nulls de la base de données en cours s’applique. Pour plus d’informations sur l’option de base de données ANSI nulls, consultez sp_dboption et Paramétrage des options de base de données.

Pour qu’un script fonctionne comme prévu, indépendamment de l’option de base de données ANSI nulls ou du paramètre SET ANSI_NULLS, use EST NULL et N’EST PAS NULL dans les comparaisons pouvant contenir des valeurs null.

Pour les procédures stockées, SQL Server utilise la valeur de réglage SET ANSI_NULLS à partir de l’heure de création initiale de la procédure stockée. Chaque fois que la procédure stockée est ensuite exécutée, le paramètre de SET ANSI_NULLS est restauré à sa valeur utilisée à l’origine et prend effet. Lorsqu’il est appelé dans une procédure stockée, le paramètre de SET ANSI_NULLS n’est pas modifié.

SET ANSI_NULLS doit être défini sur ON pour exécuter des requêtes distribuées.

SET ANSI_NULLS doit également être ACTIVÉ lors de la création ou de la manipulation d’index sur des colonnes calculées ou des vues indexées. Si SET ANSI_NULLS est DÉSACTIVÉ, les instructions CREATE, UPDATE, INSERT et DELETE sur les tables avec des index sur les colonnes calculées ou les vues indexées échoueront. SQL Server renverra une erreur répertoriant toutes les options DÉFINIES violant les valeurs requises. De plus, lors de l’exécution d’une instruction SELECT, si SET ANSI_NULLS est DÉSACTIVÉ, SQL Server ignorera les valeurs d’index sur les colonnes ou les vues calculées et résoudra la sélection comme s’il n’y avait pas de tels index sur les tables ou les vues.

Remarque ANSI_NULLS est l’une des sept options de SET qui doivent être définies sur les valeurs requises lors du traitement des index sur des colonnes calculées ou des vues indexées. Les options ANSI_PADDING, ANSI_WARNINGS, ARITHABORT, QUOTED_IDENTIFIER et CONCAT_NULL_YIELDS_NULL doivent également être définies sur ON, tandis que NUMERIC_ROUNDABORT doit être définie sur OFF.

Le pilote ODBC SQL Server et le fournisseur Microsoft OLE DB pour SQL Server définissent automatiquement ANSI_NULLS sur ON lors de la connexion. Ce paramètre peut être configuré dans les sources de données ODBC, dans les attributs de connexion ODBC ou dans les propriétés de connexion OLE DB définies dans l’application avant la connexion à SQL Server. DÉFINISSEZ la valeur par défaut ANSI_NULLS sur OFF pour les connexions à partir d’applications de bibliothèque de bases de données.

Lorsque SET ANSI_DEFAULTS est ACTIVÉ, SET ANSI_NULLS est activé.

Le paramètre de SET ANSI_NULLS est défini au moment de l’exécution ou de l’exécution et non au moment de l’analyse.

Autorisations

DÉFINISSEZ les autorisations ANSI_NULLS par défaut pour tous les utilisateurs.

Exemples

Cet exemple utilise les opérateurs de comparaison Equals(=) et Not Equal To (< >) pour effectuer des comparaisons avec des valeurs NULL et nonnull dans une table. Cet exemple montre également que IS NULL n’est pas affecté par le paramètre SET ANSI_NULLS.

Voir Aussi

= (Égal à)

IF…AUTRE

<> ( Pas Égal À)

SET

SET ANSI_DEFAULTS

OÙ

TANDIS QUE

Laisser un commentaire Annuler la réponse

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Articles récents

  • Valeur nette de Sidney Rice 2018: Que vaut ce joueur de football de la NFL?
  • Fonction SQL Server QUOTENAME
  • Étude sur la santé cardiovasculaire (SHC)
  • La Meilleure Vinaigrette aux fraises
  • Talks
  • Stanford MSx Review: L’alternative au MBA pour cadres en vaut-elle la peine?
  • PMC
  • 49 Photos Chaudes De Stephanie Szostak Qui Vous Feront Penser À Des Pensées Sales
  • Deutsch
  • Nederlands
  • Svenska
  • Norsk
  • Dansk
  • Español
  • Français
  • Português
  • Italiano
  • Română
  • Polski
  • Čeština
  • Magyar
  • Suomi
  • 日本語
  • 한국어

Archives

  • mars 2022
  • février 2022
  • janvier 2022
  • décembre 2021
  • novembre 2021
  • octobre 2021

Méta

  • Connexion
  • Flux des publications
  • Flux des commentaires
  • Site de WordPress-FR
©2022 Knihy-blog | Powered by WordPress and Superb Themes!