sql >> Databasteknik >  >> RDS >> Sqlserver

Hur kan jag ställa in ett enkelt beräknat fält i SQL Server?

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

Detta kommer att bevara en beräknad kolumn och kan prestera bättre i urval än en beräkning i vy eller UDF om du har ett stort antal poster (när det första skapandet av kolumnen har hänt, vilket kan vara smärtsamt långsamt och förmodligen bör ske under låga användningstider ). Det kommer att sakta ner infogning och uppdateringar. Vanligtvis tycker jag att en långsam infogning eller uppdatering tolereras bättre av användarna än en fördröjning i ett urval såvida du inte får problem med låsning.

Den bästa metoden för att göra detta beror mycket på din användning och vilken typ av prestanda du behöver. Om du inte har många poster eller om den beräknade kolumnen inte kommer att kallas så ofta, kanske du inte vill ha en bestående kolumn, men om du ofta kör rapporter med alla poster för året eller andra stora uppsättningar av data, kanske du upptäcker att den beständiga beräknade kolumnen fungerar bättre för dig. Som med alla uppgifter av detta slag är det enda sättet att veta vad som fungerar bäst i din situation att testa.



  1. Hur väljer man rader efter tidsintervall i mysql?

  2. Hur infogar man data från en EXECUTE-sats i mySql?

  3. kompilering av ogiltiga orakelprocedurer

  4. Vad är PostgreSQL likvärdig med SQL Server NVARCHAR?