sql >> Database >  >> RDS >> Sqlserver

Beste ANSI-opties bij het maken van een nieuwe database

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).




  1. Gebruikersnaam, Wachtwoord, Salting, Encrypting, Hash - Hoe werkt het allemaal?

  2. Hoe maak je een functie die niets retourneert?

  3. SQL Server voorwaardelijke CHECK-beperking

  4. Hoe twee tabellen samen te voegen met ssp.class.php