OK、アプリケーション開発者の観点から、これらの設定が行うことは次のとおりです:
QUOTED_IDENTIFIER
この設定は、引用符 ".."
の使用方法を制御します SQL コンパイラによって解釈されます。 QUOTED_IDENTIFIER
の場合 が ON の場合、引用符は括弧のように扱われます ([...]
) であり、テーブル名、列名などの SQL オブジェクト名を引用するために使用できます。OFF (推奨されません) の場合、引用符はアポストロフィ ('..'
) のように扱われます。 ) であり、SQL コマンドでテキスト文字列を引用するために使用できます。
ANSI_NULLS
この設定は、IS
以外の比較演算子を使用しようとしたときの動作を制御します NULL で。 ON の場合、これらの比較は、NULL との比較は常に失敗し (値ではなく、フラグであるため)、FALSE
を返すという標準に従います。 .この設定がオフの場合 (実際には そうではありません 推奨) 値のように正常に処理し、 =
を使用できます 、 <>
などで、適切に TRUE を返します。
これを処理する適切な方法は、代わりに IS
を使用することです (ColumnValue IS NULL ..
).
CONCAT_NULL_YIELDS_NULL
この設定は、文字列式で使用される場合に NULL を「伝達」するかどうかを制御します。この設定がONの時は、規格通り 'some string' + NULL ..
のような式になります。 常に NULL を返します。したがって、一連の文字列連結では、1 つの NULL によって式全体が NULL を返す可能性があります。これをオフにすると (これも推奨されません)、NULL が代わりに空の文字列のように扱われるため、'some string' + NULL
'some string'
と評価されるだけです .
これを処理する適切な方法は、COALESCE (または ISNULL) 関数を使用することです:'some string' + COALESCE(NULL, '') ..
.