Skip to content
Menu
Knihy-blog
Knihy-blog
Dezember 20, 2021

SET ANSI_NULLS

Gibt das SQL-92-konforme Verhalten der Vergleichsoperatoren Equals (=) und Not Equal to (<>) bei Verwendung mit Nullwerten an.

  • Syntax
  • Anmerkungen
  • Berechtigungen
  • Beispiele
  • Siehe auch
Syntax

SET ANSI_NULLS {ON | OFF}

Anmerkungen

Der SQL-92-Standard verlangt, dass ein Vergleich von equals (=) oder ungleich (<>) mit einem Nullwert zu FALSE ausgewertet wird. Wenn SET ANSI_NULLS aktiviert ist, gibt eine SELECT-Anweisung mit WHERE column_name = NULL null Zeilen zurück, auch wenn in column_name Nullwerte vorhanden sind. Eine SELECT-Anweisung mit WHERE column_name <> NULL gibt null Zeilen zurück, auch wenn column_name Nicht-Null-Werte enthält.

Wenn SET ANSI_NULLS DEAKTIVIERT ist, folgen die Vergleichsoperatoren Equals (=) und Not Equal To (<>) nicht dem SQL-92-Standard. Eine SELECT-Anweisung mit WHERE column_name = NULL gibt die Zeilen mit Nullwerten in column_name zurück. Eine SELECT-Anweisung mit WHERE column_name <> NULL gibt die Zeilen mit nonnull-Werten in der Spalte zurück. Darüber hinaus gibt eine SELECT-Anweisung mit WHERE column_name <> XYZ_value alle Zeilen zurück, die kein XYZ-Wert und nicht NULL sind.

Hinweis Ob Microsoft® SQL Server™ eine leere Zeichenfolge entweder als einzelnes Leerzeichen oder als echte leere Zeichenfolge interpretiert, wird durch die Einstellung der Kompatibilitätsstufe von sp_dbcmptlevel gesteuert. Wenn der Kompatibilitätsgrad kleiner oder gleich 65 ist, interpretiert SQL Server leere Zeichenfolgen als einzelne Leerzeichen. Wenn der Kompatibilitätsgrad gleich 70 ist, interpretiert SQL Server leere Zeichenfolgen als leere Zeichenfolgen. Weitere Informationen finden Sie unter sp_dbcmptlevel.

Wenn SET ANSI_NULLS aktiviert ist, werden alle Vergleiche mit einem Nullwert als UNBEKANNT ausgewertet. Wenn SET ANSI_NULLS DEAKTIVIERT ist, werden Vergleiche aller Daten mit einem Nullwert als TRUE ausgewertet, wenn der Datenwert NULL ist. Wenn nicht angegeben, gilt die Einstellung der Option ANSI nulls der aktuellen Datenbank. Weitere Informationen zur Datenbankoption ANSI nulls finden Sie unter sp_dboption und Festlegen von Datenbankoptionen.

Damit ein Skript wie vorgesehen funktioniert, ist use unabhängig von der Datenbankoption ANSI nulls oder der Einstellung SET ANSI_NULLS NULL und NICHT NULL in Vergleichen, die Nullwerte enthalten können.

Für gespeicherte Prozeduren verwendet SQL Server den Einstellungswert SET ANSI_NULLS ab dem Zeitpunkt der anfänglichen Erstellung der gespeicherten Prozedur. Wenn die gespeicherte Prozedur anschließend ausgeführt wird, wird die Einstellung von SET ANSI_NULLS auf den ursprünglich verwendeten Wert zurückgesetzt und wird wirksam. Beim Aufruf innerhalb einer gespeicherten Prozedur wird die Einstellung von SET ANSI_NULLS nicht geändert.

SET ANSI_NULLS sollte auf ON gesetzt werden, um verteilte Abfragen auszuführen.

SET ANSI_NULLS muss auch aktiviert sein, wenn Indizes für berechnete Spalten oder indizierte Ansichten erstellt oder bearbeitet werden. Wenn SET ANSI_NULLS DEAKTIVIERT ist, schlagen CREATE-, UPDATE-, INSERT- und DELETE-Anweisungen für Tabellen mit Indizes für berechnete Spalten oder indizierte Ansichten fehl. SQL Server gibt einen Fehler zurück, der alle FESTGELEGTEN Optionen auflistet, die die erforderlichen Werte verletzen. Darüber hinaus ignoriert SQL Server beim Ausführen einer SELECT-Anweisung die Indexwerte für berechnete Spalten oder Ansichten, wenn SET ANSI_NULLS DEAKTIVIERT ist, und löst select auf, als gäbe es keine solchen Indizes für die Tabellen oder Ansichten.

Hinweis ANSI_NULLS ist eine von sieben SET-Optionen, die bei Indizes für berechnete Spalten oder indizierte Ansichten auf die erforderlichen Werte gesetzt werden müssen. Die Optionen ANSI_PADDING, ANSI_WARNINGS, ARITHABORT, QUOTED_IDENTIFIER und CONCAT_NULL_YIELDS_NULL müssen ebenfalls auf ON gesetzt sein, während NUMERIC_ROUNDABORT auf OFF gesetzt sein muss.

Der SQL Server ODBC-Treiber und der Microsoft OLE DB-Anbieter für SQL Server setzen ANSI_NULLS beim Herstellen einer Verbindung automatisch auf ON. Diese Einstellung kann in ODBC-Datenquellen, in ODBC-Verbindungsattributen oder in OLE DB-Verbindungseigenschaften konfiguriert werden, die in der Anwendung vor dem Herstellen einer Verbindung mit SQL Server festgelegt werden. SETZEN Sie ANSI_NULLS standardmäßig auf OFF für Verbindungen aus DB-Library-Anwendungen.

Wenn SET ANSI_DEFAULTS aktiviert ist, ist SET ANSI_NULLS aktiviert.

Die Einstellung von SET ANSI_NULLS wird zur Ausführungs- oder Laufzeit und nicht zur Analysezeit festgelegt.

Berechtigungen

LEGEN SIE die ANSI_NULLS-Berechtigungen standardmäßig auf alle Benutzer FEST.

Beispiele

In diesem Beispiel werden die Vergleichsoperatoren Equals (=) und Not Equal To (<>) verwendet, um Vergleiche mit NULL- und Nonnull-Werten in einer Tabelle durchzuführen. Dieses Beispiel zeigt auch, dass IS NULL von der Einstellung SET ANSI_NULLS nicht beeinflusst wird.

Siehe auch

= (Equals)

IF…SONST

<> ( Ungleich)

SET

SET ANSI_DEFAULTS

WHERE

WHILE

Schreibe einen Kommentar Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Neueste Beiträge

  • Sidney Rice Net Worth 2018: Was ist dieser NFL-Football-Spieler wert?
  • SQL Server QUOTENAME-Funktion
  • Cardiovascular Health Study (CHS)
  • Das beste Erdbeer-Dressing
  • Talks
  • Stanford MSx Review: Lohnt sich die Executive MBA Alternative?
  • PMC
  • 49 Heiße Bilder von Stephanie Szostak, die dich zum Nachdenken bringen werden Schmutzige Gedanken
  • Deutsch
  • Nederlands
  • Svenska
  • Norsk
  • Dansk
  • Español
  • Français
  • Português
  • Italiano
  • Română
  • Polski
  • Čeština
  • Magyar
  • Suomi
  • 日本語
  • 한국어

Archive

  • März 2022
  • Februar 2022
  • Januar 2022
  • Dezember 2021
  • November 2021
  • Oktober 2021

Meta

  • Anmelden
  • Feed der Einträge
  • Kommentare-Feed
  • WordPress.org
©2022 Knihy-blog | Powered by WordPress and Superb Themes!