De opties staan standaard op OFF
omdat deze database naar alle waarschijnlijkheid is gemaakt en gescript zonder de standaardinstellingen aan te raken. Wanneer een database wordt gemaakt, wordt deze in wezen gekloond vanuit het model
systeemdatabase, en bij een geheel nieuwe installatie van SQL Server zijn de ANSI-instellingen op de database OFF
, hoewel sommige van deze instellingen (zoals ANSI_NULLS
) zijn opties die u echt nooit OFF
zou willen hebben voor elke moderne databasetoepassing. In feite, in het geval van ANSI_NULLS
in het bijzonder specificeert de documentatie dat de mogelijkheid om het helemaal uit te schakelen verouderd
is , hoewel het waarschijnlijk nog een paar jaar zal duren voordat dat echt het geval is.
En daar zit het probleem:deze instellingen worden nog steeds OFF
gehouden ten behoeve van oude applicaties, die deze opties ON
. moesten aanzetten lang geleden wanneer ze konden profiteren van hun goedheid (en veranderingen doorbreken). Als de sessie geen waarden voor hen specificeert, worden de database-instellingen toegepast.
Maar de meeste toepassingen doen specificeer deze instellingen in een sessie, zo niet expliciet, dan impliciet via hun gegevenstoegangsbibliotheek. Volgens de documentatie op SET ANSI_DEFAULTS
, waarmee een heleboel instellingen tegelijk worden omgeschakeld:
DB-Library is een oude toegangsbibliotheek die desalniettemin nog steeds wordt gebruikt door sommige oude applicaties en optioneel als backing-bron voor zaken als FreeTDS, dus zo nu en dan kun je nog steeds een applicatie tegenkomen die opzettelijk of per ongeluk de database-instellingen gebruikt, maar dit wordt steeds zeldzamer.
Wat betreft de beste waarde voor deze opties, dat hangt volledig af van uw gebruikssituatie. Als je oude applicaties moet ondersteunen die oud gedrag verwachten, heb je misschien geen keuze om de database-instellingen op OFF
te laten staan. . Als je een applicatie hebt die verbinding maakt via een oude bibliotheek, maar echt moderne SQL-semantiek verwacht, wil je deze misschien ON
zetten . Voor alle andere applicaties zijn deze opties waarschijnlijk al per sessie ingesteld op hun (on)juiste waarden door de applicatie zelf en wat je configureert doet er sowieso niet toe.
Een discussie over elke individuele optie en wanneer je deze ON
wilt zetten of OFF
de grenzen van een redelijk antwoord zou overschrijden. Raadpleeg de documentatie over elk van hen en formuleer uw eigen best practices. Je kunt dingen als de SET
optievereisten voor indexen op berekende kolommen
u begeleiden, waarvoor een heleboel opties nodig zijn om ON
. te zijn voordat je ze zelfs maar kunt maken (en ze worden over het algemeen als leuk beschouwd).