SnowConvert AI - Serveur SQL-Azure Synapse - ANSI_NULLS

Applies to
  • SQL Server

  • Azure Synapse Analytics

Description

Cette instruction spécifie le comportement compatible ISO des opérateurs de comparaison Égal à et Non égal à lorsqu’ils sont utilisés avec des valeurs nulles dans SQLServer. Consultez SET ANSI_NULLS pour obtenir plus d’informations sur cette instruction.

Syntaxe Transact-SQL

 SET ANSI_NULLS { ON | OFF }
Copy

Modèles d’échantillons de sources

SET ANSI_NULLS ON

« SET ANSI_NULLS ON n’affecte une comparaison que si l’un des opérandes de la comparaison est soit une variable qui est NULL soit un littéral NULL. Si les deux côtés de la comparaison sont des colonnes ou des expressions composées, le paramètre n’affecte pas la comparaison. » (article SQLServer ANSI_NULLS).

Snowflake ne prend pas en charge cette instruction, donc dans le cas de ANSI_NULLS ON, ceci est marqué par un FDM (SSC-FDM-TS0027), car elle n’est pas pertinente dans l’exécution d’opérations de comparaison égales et non égales. Ici, vous pouvez trouver une explication du traitement NULL dans Snowflake.

SQL Server

 SET ANSI_NULLS ON;
Copy

Snowflake

 ----** SSC-FDM-TS0027 - SET ANSI_NULLS ON STATEMENT MAY HAVE A DIFFERENT BEHAVIOR IN SNOWFLAKE **
--SET ANSI_NULLS ON
Copy

SET ANSI_NULLS OFF

« Lorsque ANSI_NULLS est OFF, les opérateurs de comparaison d’égalité (=) et d’inégalité (<>) ne respectent pas la norme ISO. Une instruction SELECT qui utilise WHERE column_name = NULL renvoie les lignes dont la valeur est nulle dans la colonne column_name. Une instruction SELECT qui utilise WHERE column_name <> NULL renvoie les lignes qui ont des valeurs non NULL dans la colonne ». (SQLServer ANSI_NULLS article).

Dans le cas de l’instruction ANSI_NULLS OFF, celle-ci est marquée d’un EWI (SSC-EWI-0040) parce qu’elle nécessite un effort manuel supplémentaire.

SQL Server

 SET ANSI_NULLS OFF;
Copy

Snowflake

!!!RESOLVE EWI!!! /*** SSC-EWI-0040 - THE 'SIMPLE SET STATEMENT' CLAUSE IS NOT SUPPORTED IN SNOWFLAKE ***/!!!
SET ANSI_NULLS OFF;
Copy