Compartilho através deste post um recurso bem interessante e que pode nos poupar bastante tempo no desenvolvimento de aplicativos onde precisaremos armazenar as informações no banco de dados e realizar cálculos entre as colunas da tabela.

Através do SQLServer existe a possibilidade de criarmos campos calculados, e é deste benefício que exemplifico abaixo.

Exemplo de um campo calculado que irá fornecer o subtotal de para os itens de um pedido.

A criação da tabela:

create table itempedido(

id int identity(1,1) primary key clustered,

idproduto int not null,

valorUnitario money not null,

qtde numeric(15,2),

subtotal as ( valorUnitario * qtde ),  /* CAMPO CALCULADO */

usuario as (system_user)

);

O insert de exemplo

 insert into itempedido( idproduto, valorunitario, qtde) values ( 1, 90.5 , 5);

Realize um select na tabela itempedido e verifique que o campo subtotal foi preenchido com o resultado da expressão indicada na criação da tabela.

Importante:

Um campo calculado deverá conter uma expressão determinística;

Um campo calculado não poderá ser alvo de um insert ou update;

Um campo calculado poderá ser utilizado sem problemas com índica, cláusula where ou order by.

Fonte: http://msdn.microsoft.com/en-us/library/ms174979(v=sql.110).aspx

Boa implementação a todos.