1
resposta

Como ativar e desativar o valor padrão em campo de uma tabela já existente

Olá pessoal. O professor, no final da aula mensionou que poderíamos ativar e desativar o valor padrão em um campo mesmo depois da tabela já criada. Inclusive já foi postado até no fórum uma dúvida sobre isso. A resposta dada me ajudou em partes, pois consegui através dela desativar o comando de valor padrão do campo cidade na minha versão da tabela exemplo. Tive dificuldade em encontrar o nome da CONSTRAINT do valor padrão. Mas depois de muito tempo revirando o Managenment Studio encontrei, e segue o meu código e os passo percorrridos:

"Como desativar o valor padrão de um campo:

ALTER TABLE TAB_PADRAO DROP CONSTRAINT [DF__TAB_PADRA__CIDAD__4AB81AF0]

** Note que usei o comando DROP CONSTRAINT para apagar o valor padrão do campo cidade que tem o nome:

[DF__TAB_PADRA__CIDAD__4AB81AF0]

** Para encontrar o nome do valor padrão do campo cidade, fui até a árvore do servidor, no banco e na tabela em trabalho > pasta “Restrições” e selecionei o nome associado ao campo." Realmente funcionou e consegui apagar o valor padrão...

Agora resta a dúvida, como ativar novamente esse valor padrão? Já tentei algo parecido com: ALTER TABLE TAB_PADRAO ADD CONSTRAINT NOME_DO_VALOR_PADRAO, mas retorna erro de sintaxe e não consegui fazer... Diante da ciência de que esse é um tópico importante, pois na prática profissional vamos encontrar mais tabelas já criadas para dá manutenção do que criar tabelas novas. Com certeza teremos ter que alterar esses valores que geralemente mudam conforme a regra de negócio muda. Assim, peço a colaoração dos colegas para solucionarmos esse problema. Desde já agradeço.

1 resposta

Oii Saulo, tudo bem?

Sinto muito pela demora em retornar com sua resposta.

Para excluir o valor padrão, você fez certinho. Você quase acertou no comando para adicionar o valor padrão seguido de uma constraint. O código correto para isso, é esse:

 ALTER TABLE tabela ADD CONSTRAINT nome_constraint DEFAULT valor_padrao FOR coluna;

Se você não especificar o valor dessa coluna no insert, esse valor padrão que especificou será inserido.

Espero ter ajudado. Qualquer coisa é só falar, beleza? :)