Bóson Treinamentos em Ciência e Tecnologia

Usando Campos Calculados em tabelas no Microsoft SQL Server

Campos Calculados no Microsoft SQL Server

Campos Calculados em tabelas no Microsoft SQL Server

Campos calculados (ou colunas calculadas ou ainda colunas computadas) são colunas em uma tabela em um banco de dados que apresentam os resultados de uma expressão pré-definida, geralmente uma fórmula aplicada a outras colunas, da mesma forma que uma View, porém sem causar overhead no banco, pois por padrão seus dados não são fisicamente armazenados na tabela. Uma outra vantagem de um campo calculado é que a integridade dos dados é aumentada, pois os cálculos são realizados em nível de tabela, em vez de serem realizados por meio de queries (consultas) criadas pelo desenvolvedor.

Como citado, por padrão um campo calculado no SQL Server não armazena nenhum valor – os dados são calculados no momento de uma consulta. Porém, é possível persistir os dados de um campo calculado opcionalmente, o que significa que o cálculo é realizado e os dados são salvos no registro. É possível até mesmo indexar um campo calculado, e uma das aplicaçoes desses campos é na substituição de triggers, simplificando o design e a operação sobre o banco de dados.

Sintaxe

Para criar uma coluna calculada usamos a seguinte sintaxe:

nome_coluna AS expressão [PERSISTED]

onde expressão é a fórmula que desejamos usar para realizar o cálculo do valor da coluna.

Exemplo

Suponha a tabela de vendas contendo os campos Preco_Produto, Qtde e Preco_Total. Queremos criar essa tabela de modo que o campo Preco_Total seja calculado dinamicamente, multiplicando o preço do produto pela quantidade (adquirida), persistindo o valor calculado na tabela (gravando fisicamente o valor). Para isso, podemos usar o seguinte código:

CREATE TABLE tblVendas (
 ID_Venda SMALLINT PRIMARY KEY IDENTITY
 Preco_Produto MONEY NOT NULL,
 Qtde TINYINT NOT NULL,
 Preco_Total AS Preco_Produto * Qtde PERSISTED
);
GO

Observações importantes:

 

Sair da versão mobile