Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Най-добрите ANSI опции при създаване на нова база данни

Опциите по подразбиране са 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 преди дори да можете да ги създадете (а те обикновено се смятат за хубаво нещо).




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Таблица:Повторете редовете на заглавките на всяка страница, които не работят - Report Builder 3.0

  2. Грешка в SQL Server, „Ключовата дума не се поддържа „източник на данни“

  3. Как да четете и анализирате планове за изпълнение на SQL Server

  4. Типове курсори на SQL Server - Динамичен курсор само за препращане | Урок за SQL Server / Урок за TSQL

  5. Как да игнорирате параметър в съхранена процедура, ако стойността му е нула