پست

ANSI_NULLS در SQL Server

یکی از پارامترها که شاید بیشتر مواقع به آن دقت نکرد باشید، ANSI_NULLS است.
بیشتر مواقع که یک کوئری را بصورت خودکار توسط ابزارها می‌سازید مقدار آن و همچنین مقدار QUOTED_IDENTIFIER برابر با ON می‌شود.
اگر مقدار آنها را OFF کنید ممکن است با مشکلاتی در اجرا کوئری‌ها مواجه شوید.

1
2
3
SET ANSI_NULLS ON

SET QUOTED_IDENTIFIER ON

در واقع متغیر گفته شده چگونگی برخورد با = / <> را تغییر می‌دهد که بصورت خلاصه در جدول زیر آمده است:

Boolean ExpressionSET ANSI_NULLS ONSET ANSI_NULLS OFF
NULL = NULLUNKNOWNTRUE
1 = NULLUNKNOWNFALSE
NULL <> NULLUNKNOWNFALSE
1 <> NULLUNKNOWNTRUE
NULL > NULLUNKNOWNUNKNOWN
1 > NULLUNKNOWNUNKNOWN
NULL IS NULLTRUETRUE
1 IS NULLFALSEFALSE
NULL IS NOT NULLFALSEFALSE
1 IS NOT NULLTRUETRUE

مقدار متغیر دوم هم چگونگی برخورد با ` “” ` و ` ‘’ ` را مشخص می‌کند

set-ansi-nulls

set-quoted-identifier