sql >> Database >  >> RDS >> Sqlserver

Hoe kan ik een eenvoudig berekend veld instellen in SQL Server?

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

Hierdoor blijft een berekende kolom behouden en presteert deze mogelijk beter in selecties dan een berekening in weergave of UDF als u een groot aantal records heeft (zodra de eerste creatie van de kolom is gebeurd, kan dit pijnlijk traag zijn en zou dit waarschijnlijk moeten gebeuren tijdens lage gebruikstijden ). Het vertraagt ​​​​invoegingen en updates. Meestal vind ik dat een langzame invoeging of update door gebruikers beter wordt getolereerd dan een vertraging in een selectie, tenzij je vergrendelingsproblemen krijgt.

De beste methode om dit te doen, hangt sterk af van uw gebruik en wat voor soort prestaties u nodig hebt. Als u niet veel records heeft of als de berekende kolom niet zo vaak wordt aangeroepen, wilt u misschien geen vaste kolom, maar als u regelmatig rapporten uitvoert met alle records voor het jaar of andere grote sets van gegevens, zult u merken dat de aanhoudende berekende kolom beter voor u werkt. Zoals bij elke taak van deze aard, is testen de enige manier om te weten wat het beste werkt in uw situatie.



  1. Sorteer op beste match in welsprekend

  2. Formulier om gegevens uit de MySQL-database te verwijderen met behulp van PHP

  3. MySQL:kan SIGNAL niet gebruiken in Trigger

  4. Aangepaste Wordpress-databasetabel wordt niet herkend