ANSI_NULLS در SQL Server
یکی از پارامترها که شاید بیشتر مواقع به آن دقت نکرد باشید، ANSI_NULLS است.
بیشتر مواقع که یک کوئری را بصورت خودکار توسط ابزارها میسازید مقدار آن و همچنین مقدار QUOTED_IDENTIFIER برابر با ON میشود.
اگر مقدار آنها را OFF کنید ممکن است با مشکلاتی در اجرا کوئریها مواجه شوید.
SET ANSI_NULLS ON
SET QUOTED_IDENTIFIER ON
در واقع متغیر گفته شده چگونگی برخورد با = / <> را تغییر میدهد که بصورت خلاصه در جدول زیر آمده است:
| Boolean Expression | SET ANSI_NULLS ON | SET ANSI_NULLS OFF |
|---|---|---|
| NULL = NULL | UNKNOWN | TRUE |
| 1 = NULL | UNKNOWN | FALSE |
| NULL <> NULL | UNKNOWN | FALSE |
| 1 <> NULL | UNKNOWN | TRUE |
| NULL > NULL | UNKNOWN | UNKNOWN |
| 1 > NULL | UNKNOWN | UNKNOWN |
| NULL IS NULL | TRUE | TRUE |
| 1 IS NULL | FALSE | FALSE |
| NULL IS NOT NULL | FALSE | FALSE |
| 1 IS NOT NULL | TRUE | TRUE |
مقدار متغیر دوم هم چگونگی برخورد با ` “” ` و ` ‘’ ` را مشخص میکند