sql >> Database teknologi >  >> RDS >> Sqlserver

Hvordan kan jeg opsætte et simpelt beregnet felt i SQL Server?

ALTER TABLE ACCOUNT_TABLE 
ADD ACCT_NUMBER AS MAIN_ACCT+'-'+GROUP_ACCT+'-'+SUB_ACCT PERSISTED

Dette vil vedblive med en beregnet kolonne og kan fungere bedre i valg end en beregning i view eller UDF, hvis du har et stort antal poster (når den første oprettelse af kolonnen er sket, hvilket kan være smertefuldt langsomt og sandsynligvis skulle ske under lav brugstid ). Det vil bremse indsættelser og opdateringer. Normalt synes jeg, at en langsom indsættelse eller opdatering tolereres bedre af brugerne end en forsinkelse i et valg, medmindre du får problemer med låsning.

Den bedste metode til at gøre dette vil afhænge meget af dit forbrug og hvilken slags ydeevne du har brug for. Hvis du ikke har mange poster, eller hvis den beregnede kolonne ikke bliver kaldt så ofte, vil du måske ikke have en vedvarende kolonne, men hvis du ofte kører rapporter med alle poster for året eller andre store sæt af data, kan du finde ud af, at den vedvarende beregnede kolonne fungerer bedre for dig. Som med enhver opgave af denne art, er den eneste måde at vide, hvad der fungerer bedst i din situation, ved at teste.



  1. Kunne ikke åbne JPA EntityManager for transaktion; indlejret undtagelse er javax.persistence.PersistenceException

  2. MySQL UTF8 Windows eksport - Linux import

  3. Undtagelseshåndtering i pl/sql

  4. Udfyld dynamisk WTForm SelectField med sqlAlchemy-forespørgsel