Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Uma coluna computada é uma coluna virtual que não é armazenada fisicamente na tabela, a menos que a coluna esteja marcada como PERSISTED. Uma expressão de coluna computada pode usar dados de outras colunas para calcular um valor para a coluna à qual pertence. Você pode especificar uma expressão para uma coluna computada no SQL Server 2014 usando o SQL Server Management Studio ou o Transact-SQL.
Nesse Tópico
Antes de começar:
Para especificar uma coluna computada usando:
Antes de começar
Limitações e restrições
Uma coluna computada não pode ser usada como uma definição de restrição DEFAULT ou FOREIGN KEY ou com uma definição de restrição NOT NULL. No entanto, se o valor da coluna computada for definido por uma expressão determinística e o tipo de dados do resultado for permitido em colunas de índice, uma coluna computada poderá ser usada como uma coluna de chave em um índice ou como parte de qualquer restrição PRIMARY KEY ou UNIQUE. Por exemplo, se a tabela tiver colunas inteiros a e b, a coluna computada a + b poderá ser indexada, mas a coluna computada a + DATEPART(dd, GETDATE()) não poderá ser indexada, pois o valor pode mudar nas invocações subsequentes.
Uma coluna computada não pode ser o destino de uma instrução INSERT ou UPDATE.
Segurança
Permissões
Requer a permissão ALTER na tabela.
Como usar o SQL Server Management Studio.
Para adicionar uma nova coluna computada
No Pesquisador de Objetos, expanda a tabela na qual você deseja adicionar a nova coluna computada. Clique com o botão direito do mouse em Colunas e selecione Nova Coluna.
Insira o nome da coluna e aceite o tipo de dados padrão (
nchar(10)). O Mecanismo de Banco de Dados determina o tipo de dados da coluna computada, aplicando as regras de precedência de tipos de dados às expressões especificadas na fórmula. Por exemplo, se a fórmula fizer referência a uma coluna de tipomoneye uma coluna do tipoint, a coluna computada será do tipomoneyporque esse tipo de dados tem a precedência mais alta. Para obter mais informações, confira Precedência de tipo de dados (Transact-SQL).Na guia Propriedades da Coluna , expanda a propriedade Especificação de Coluna Computada .
Na propriedade filho (Fórmula) , insira a expressão para essa coluna na célula de grade à direita. Por exemplo, em uma coluna
SalesTotal, a fórmula que você insere pode serSubTotal+TaxAmt+Freight, que associa o valor nessas colunas a cada linha na tabela.Importante
Quando uma fórmula combina duas expressões de tipos de dados diferentes, as regras de precedência do tipo de dados especificam que o tipo de dados com menor precedência é convertido no tipo de dados de maior precedência. Se a conversão não for uma conversão implícita com suporte, o erro "
Error validating the formula for column column_name." será retornado. Use a função CAST ou CONVERT para resolver o conflito de tipo de dados. Por exemplo, se uma coluna do tiponvarcharfor combinada com uma coluna do tipoint, o tipo inteiro deverá ser convertidonvarchar, conforme mostrado nesta fórmula('Prod'+CONVERT(nvarchar(23),ProductID)). Para obter mais informações, veja CAST e CONVERT (Transact-SQL).Indique se os dados são persistidos escolhendo Sim ou Não na lista suspensa para a propriedade filha Is Persisted.
No menu Arquivo, clique em Salvarnome da tabela.
Para adicionar uma definição de coluna computada a uma coluna existente
No Pesquisador de Objetos, clique com o botão direito do mouse na tabela com a coluna que você deseja alterar e expanda a pasta Colunas .
Clique com o botão direito do mouse na coluna para a qual você deseja especificar uma fórmula de coluna computada e clique em Excluir. Clique em OK.
Adicione uma nova coluna e especifique a fórmula de coluna computada seguindo o procedimento anterior para adicionar uma nova coluna computada.
Usando Transact-SQL
Para adicionar uma coluna computada ao criar uma tabela
Conecte-se ao Mecanismo de Banco de Dados.
Na barra Padrão, clique em Nova Consulta.
Copie e cole o exemplo a seguir na janela de consulta e clique em Executar. O exemplo cria uma tabela com uma coluna computada que multiplica o valor na
QtyAvailablecoluna vezes o valor naUnitPricecoluna.CREATE TABLE dbo.Products ( ProductID int IDENTITY (1,1) NOT NULL , QtyAvailable smallint , UnitPrice money , InventoryValue AS QtyAvailable * UnitPrice ); -- Insert values into the table. INSERT INTO dbo.Products (QtyAvailable, UnitPrice) VALUES (25, 2.00), (10, 1.5); -- Display the rows in the table. SELECT ProductID, QtyAvailable, UnitPrice, InventoryValue FROM dbo.Products;
Para adicionar uma nova coluna computada a uma tabela existente
Conecte-se ao Mecanismo de Banco de Dados.
Na barra Padrão, clique em Nova Consulta.
Copie e cole o exemplo a seguir na janela de consulta e clique em Executar. O exemplo a seguir adiciona uma nova coluna à tabela criada no exemplo anterior.
ALTER TABLE dbo.Products ADD RetailValue AS (QtyAvailable * UnitPrice * 1.35);
Para alterar uma coluna existente para uma coluna computada
Conecte-se ao Mecanismo de Banco de Dados.
Na barra Padrão, clique em Nova Consulta.
Para alterar uma coluna existente para uma coluna computada, você deve remover e recriar a coluna computada. Copie e cole o exemplo a seguir na janela de consulta e clique em Executar. O exemplo a seguir modifica a coluna adicionada no exemplo anterior.
ALTER TABLE dbo.Products DROP COLUMN RetailValue; GO ALTER TABLE dbo.Products ADD RetailValue AS (QtyAvailable * UnitPrice * 1.5);Para obter mais informações, confira ALTER TABLE (Transact-SQL).