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

Come posso impostare un campo calcolato semplice in SQL Server?

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

Ciò manterrà una colonna calcolata e potrebbe funzionare meglio nelle selezioni rispetto a un calcolo in visualizzazione o UDF se si dispone di un numero elevato di record (una volta avvenuta la creazione iniziale della colonna che può essere dolorosamente lenta e dovrebbe probabilmente verificarsi durante i tempi di basso utilizzo ). Rallenta gli inserimenti e gli aggiornamenti. Di solito trovo che un inserimento o un aggiornamento lento sia tollerato meglio dagli utenti rispetto a un ritardo in una selezione, a meno che non si verifichino problemi di blocco.

Il metodo migliore per farlo dipenderà molto dal tuo utilizzo e dal tipo di prestazioni di cui hai bisogno. Se non si dispone di molti record o se la colonna calcolata non verrà chiamata così frequentemente, è possibile che non si desideri una colonna persistente, ma se si eseguono frequentemente report con tutti i record per l'anno o altri insiemi di grandi dimensioni di dati, potresti scoprire che la colonna calcolata persistente funziona meglio per te. Come per qualsiasi attività di questo tipo, l'unico modo per sapere cosa funziona meglio nella tua situazione è testare.