Опциите по подразбиране са OFF
тъй като по всяка вероятност тази база данни е създадена и скриптирана, без да се докосва никоя от настройките по подразбиране. Когато се създаде база данни, тя по същество се клонира от model
системна база данни и при чисто нова инсталация на SQL Server настройките за ANSI на базата данни ще бъдат OFF
, въпреки че някои от тези настройки (като ANSI_NULLS
) са опции, които наистина никога не бихте искали да бъдат OFF
за всяко модерно приложение за база данни. Всъщност, в случай на ANSI_NULLS
по-специално документацията уточнява, че възможността за изключване изобщо е отхвърлена
, въпреки че вероятно ще минат още няколко години, преди това наистина да стане така.
И в това се крие проблемът:тези настройки все още се държат OFF
в полза на старите приложения, които трябваше да включват тези опции ON
далеч назад, когато да се възползват от тяхната доброта (и разбиващи промени). Ако сесията не посочи стойности за тях, се прилагат настройките на базата данни.
Но повечето приложения правят указват тези настройки в сесия, ако не изрично, то имплицитно чрез тяхната библиотека за достъп до данни. Според документацията на SET ANSI_DEFAULTS
, който превключва куп настройки наведнъж:
DB-Library е стара библиотека за достъп, която въпреки това все още се използва от някои стари приложения и по избор като резервен източник за неща като FreeTDS, така че от време на време все още можете да попаднете на приложение, което умишлено или случайно използва настройките на базата данни, но това е все по-рядко.
Що се отнася до най-доброто стойност за тези опции, която зависи изцяло от вашия случай на употреба. Ако трябва да поддържате стари приложения, които очакват старо поведение, може да нямате избор да оставите настройките на базата данни на OFF
. Ако имате приложение, което се свързва чрез стара библиотека, но наистина очаква модерна SQL семантика, може да искате да ги включите ON
. За всички останали приложения тези опции вероятно вече са зададени за всяка сесия на техните (не)правилни стойности от самото приложение и това, което конфигурирате, така или иначе няма да има значение.
Дискусия за всяка отделна опция и кога искате да я включите ON
или OFF
би надхвърлило границите на разумния отговор. Консултирайте се с документацията за всеки от тях и формулирайте свои собствени най-добри практики. Можете да разрешите неща като SET
изисквания за опции за индекси на изчислени колони
ви напътства, което изисква куп опции да бъдат ON
преди дори да можете да ги създадете (а те обикновено се смятат за хубаво нещо).