SnowConvert AI – SQL Server – Azure Synapse – ANSI_NULLS

Applies to
  • SQL Server

  • Azure Synapse Analytics

Beschreibung

Diese Anweisung gibt das ISO-konforme Verhalten der Vergleichsoperatoren „Equals“ und „Not Equal to“ bei Verwendung mit Nullwerten in SQLServer an. Weitere Informationen zu dieser Anweisungen finden Sie unter SET ANSI_NULLS.

Transact-SQL-Syntax

 SET ANSI_NULLS { ON | OFF }
Copy

Beispielhafte Quellcode-Muster

SET ANSI_NULLS ON

_“SET ANSI_NULLS ON wirkt sich nur dann auf einen Vergleich aus, wenn einer der Operanden des Vergleichs entweder eine Variable NULL oder ein Literal NULL ist. Wenn beide Seiten des Vergleichs Spalten oder zusammengesetzte Ausdrücke sind, wirkt sich die Einstellung nicht auf den Vergleich aus.“ (SQLServer ANSI_NULLS-Artikel).

Snowflake unterstützt diese Anweisung nicht. Im Fall von ANSI_NULLS ON wird dies daher mit einer FDM markiert (SSC-FDM-TS0027), da es keine Relevanz für die Ausführung von Vergleichsoperationen des Typs „Equal“ und „Not Equal“ hat. Hier finden Sie eine Erklärung für die NULL-Handhabung in 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

„Wenn ANSI_NULLS OFF ist, folgen die Vergleichsoperatoren Equal To (=) und Not Equal To (<>) nicht dem ISO-Standard. Eine SELECT-Anweisung, die WHERE column_name = NULL verwendet, gibt die Zeilen zurück, die in der Spalte_name Nullwerte haben. Eine SELECT-Anweisung, die WHERE column_name <> NULL verwendet, gibt die Zeilen zurück, die nicht-NULL Werte in der Spalte haben_“. (SQLServer ANSI_NULLS-Artikel).

Im Fall der Anweisung ANSI_NULLS OFF ist diese mit einem EWI ([SSC-EWI-0040](../../general/technical-documentation/issues-and-troubleshooting/conversion-issues/generalEWI. md#ssc-ewi-0040)) gekennzeichnet, weil sie zusätzlichen manuellen Aufwand erfordert.

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