Pergunta

Alguém sabe de uma maneira de alterar uma coluna calculada, sem deixar cair a coluna no SQL Server.Eu quero parar de usar a coluna como uma coluna calculada e iniciar o armazenamento de dados diretamente na coluna, mas quer manter os valores atuais.

Isso é mesmo possível?

Foi útil?

Solução

Não que eu saiba, mas aqui está algo que você pode fazer

adicionar outra coluna para a tabela a atualização de que a coluna com os valores da coluna computada, em seguida, solte a coluna calculada

Outras dicas

Ok, então deixe-me ver se eu tenho isso direto.Você quer ter uma coluna que é atualmente calculado e torná-lo uma simples jane coluna de dados.Normalmente isto iria abandonar a coluna, mas você deseja manter os dados na coluna.

  1. Fazer uma nova tabela com as colunas de chave primária, a partir de sua tabela de origem e a coluna gerados.
  2. Copie os dados de sua tabela de origem para a nova tabela.
  3. Alterar a coluna na sua tabela de origem.
  4. Copiar os dados de volta.

Não importa o que você faça eu tenho certeza que alterar a coluna irá soltá-lo.Esta forma é um pouco mais complexo, mas não é tão ruim e ele salva seus dados.

[Editar:@SqlMenace, a resposta é muito mais fácil.:) Maldição que Ameaça!!:)]

Se você precisa manter o nome da coluna (para não quebrar o código de cliente), você vai precisar descartar a coluna e voltar a adicionar uma coluna com o mesmo nome.Você pode fazer isso sem tempo de inatividade, fazendo as alterações (ao longo das linhas de SQLMenace da solução) em uma única transação.Eis alguns pseudo-código:

begin transaction
   drop computed colum X
   add stored column X
   populate column using the old formula
commit transaction
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top