Como Mudar uma Coluna Calculada para uma Coluna Regular no SQL Server

Se você está trabalhando com o SQL Server, pode se deparar com uma situação em que precisa mudar uma coluna calculada para uma coluna regular. Isso pode ser necessário se você quiser começar a armazenar dados diretamente na coluna em vez de tê-los calculados automaticamente com base em uma expressão. Infelizmente, o SQL Server não permite que você simplesmente altere uma coluna calculada existente em uma coluna não calculada mantendo seus dados. No entanto, existe uma solução alternativa que pode alcançar o resultado desejado. Neste post de blog, vamos percorrer o processo passo a passo.

Compreendendo Colunas Calculadas

Antes de mergulharmos na solução, é essencial entender o que é uma coluna calculada.

  • Coluna Calculada: Uma coluna calculada no SQL Server é uma coluna virtual que é derivada de uma expressão envolvendo outras colunas na mesma tabela. Seus valores são calculados automaticamente sempre que uma linha é recuperada ou modificada.
  • Exemplo: Por exemplo, se você tem uma coluna full_name derivada das colunas first_name e last_name, o SQL Server calcula full_name sempre que você consulta a tabela.

Agora, vamos explorar os passos necessários para mudar uma coluna calculada em uma coluna regular enquanto preservamos seus valores atuais.

Solução Passo a Passo

Passo 1: Adicionar uma Nova Coluna à Tabela

O primeiro passo é criar uma nova coluna na sua tabela existente que, em última análise, irá conter os valores que estavam na coluna calculada. Aqui está como você pode fazer isso:

ALTER TABLE NomeDaSuaTabela ADD NomeDaNovaColuna TipoDeDado;

Substitua NomeDaSuaTabela pelo nome da sua tabela, NomeDaNovaColuna pelo nome da nova coluna, e TipoDeDado pelo tipo de dado desejado (por exemplo, VARCHAR, INT, etc.) com base nos valores esperados.

Passo 2: Copiar Dados da Coluna Calculada

Em seguida, você vai querer transferir os dados da coluna calculada para a nova coluna que você acabou de criar. Você pode fazer isso usando a instrução UPDATE:

UPDATE NomeDaSuaTabela SET NomeDaNovaColuna = NomeDaColunaCalculada;

Certifique-se de substituir NomeDaColunaCalculada pelo nome real da coluna calculada da qual você está copiando os dados.

Passo 3: Remover a Coluna Calculada

Agora que você tem os valores armazenados na nova coluna, pode remover a antiga coluna calculada. Isso liberará espaço na sua tabela e completará a conversão:

ALTER TABLE NomeDaSuaTabela DROP COLUMN NomeDaColunaCalculada;

Passo 4: Renomear a Nova Coluna (Opcional)

Se você quiser que a nova coluna tenha o mesmo nome que a antiga coluna calculada para consistência, você pode usar:

EXEC sp_rename 'NomeDaSuaTabela.NomeDaNovaColuna', 'NomeDaColunaCalculada', 'COLUMN';

Resumo do Processo

Para mudar uma coluna calculada em uma coluna não calculada, siga estas etapas simples:

  1. Adicione uma nova coluna à tabela.
  2. Copie os dados da coluna calculada para a nova coluna.
  3. Remova a coluna calculada.
  4. (Opcional) Renomeie a nova coluna para manter o nome original.

Conclusão

Embora o SQL Server não permita diretamente alterar uma coluna calculada em uma coluna regular, os passos descritos acima fornecem uma solução prática sem perder seus dados existentes. Ao adicionar uma nova coluna, copiar os dados e, em seguida, remover a coluna calculada, você pode alcançar seu objetivo de forma eficaz.

Se você achou este blog útil ou conhece alguém que possa se beneficiar desta informação, sinta-se à vontade para compartilhar! Para mais dicas e truques sobre SQL Server, fique atento ao nosso blog.