OK, aus der Sicht eines Anwendungsentwicklers machen diese Einstellungen Folgendes:
QUOTED_IDENTIFIER
Diese Einstellung steuert, wie ".."
in Anführungszeichen gesetzt wird werden vom SQL-Compiler interpretiert. Wenn QUOTED_IDENTIFIER
eingeschaltet ist, werden Anführungszeichen wie Klammern behandelt ([...]
) und kann verwendet werden, um SQL-Objektnamen wie Tabellennamen, Spaltennamen usw. in Anführungszeichen zu setzen. Wenn es ausgeschaltet ist (nicht empfohlen), werden Anführungszeichen wie Apostrophe behandelt ('..'
). ) und kann verwendet werden, um Textstrings in SQL-Befehlen in Anführungszeichen zu setzen.
ANSI_NULLS
Diese Einstellung steuert, was passiert, wenn Sie versuchen, einen anderen Vergleichsoperator als IS
zu verwenden auf NULL. Wenn es eingeschaltet ist, folgen diese Vergleiche dem Standard, der besagt, dass der Vergleich mit NULL immer fehlschlägt (weil es kein Wert, sondern ein Flag ist) und FALSE
zurückgibt . Wenn diese Einstellung AUS ist (wirklich nicht empfohlen) können Sie es erfolgreich wie einen Wert behandeln und =
verwenden , <>
, usw. darauf und geben Sie gegebenenfalls TRUE zurück.
Der richtige Weg, dies zu handhaben, besteht darin, stattdessen IS
zu verwenden (ColumnValue IS NULL ..
).
CONCAT_NULL_YIELDS_NULL
Diese Einstellung steuert, ob NULLen "weitergegeben" werden, wenn sie in Zeichenfolgenausdrücken verwendet werden. Wenn diese Einstellung aktiviert ist, folgt sie dem Standard und einem Ausdruck wie 'some string' + NULL ..
gibt immer NULL zurück. Daher kann in einer Reihe von Zeichenfolgenverkettungen eine NULL dazu führen, dass der gesamte Ausdruck NULL zurückgibt. Wenn Sie dies ausschalten (ebenfalls nicht empfohlen), werden die NULL-Werte stattdessen wie leere Zeichenfolgen behandelt, also 'some string' + NULL
wird einfach zu 'some string'
ausgewertet .
Der richtige Weg, dies zu handhaben, ist die Funktion COALESCE (oder ISNULL):'some string' + COALESCE(NULL, '') ..
.