Colunas Default (e Como Mant-las)

Muitas vezes precisamos que uma determinada coluna receba um valor padro, por exemplo, uma tabela de pedidos que, ao inserir um registro novo, coloca por padro a data atual no campo que referencia a data do pedido.

Ok, mas como que eu fao isso?

Muito simples, pequeno gafanhoto, ao criar uma tabela:

Putz! Mas o campo Valor tambm tinha que ter um valor Default… Ser que eu consigo colocar sem ter que refazer a criao ou dropar a coluna?

Claro…

Reparem o que aparece ao executar um sp_help:

 

 

Massa n? Tudo bonito!

O Problema quando, ao invs do cdigo acima, executam isso:

Notaram a diferena? No foi especificado o nome da constraint Default…

Vejam como fica o nome dela quando isso ocorre:

 

 

 

Viram? Digamos que “DF__MinhaTabe__Valor__4A7F2436” no seja um nome bom para uma constraint (e esse nome pode ser muito pior dependendo do tamanho do nome da tabela e da coluna). Sem contar que o sequencial no final randomico, ou seja, pra mim foi esse valor. Para voc, ser outro.
Pensando no caso onde o banco v para n clientes e seja preciso realizar uma alterao no campo que possui essa constraint, a primeira coisa que deve ser feita dropar essa constraint, alterar a definio da coluna e ento recriar a constraint… E a, como faz?

Toda essa lenga-lenga foi para chegar onde eu queria… 🙂

Fiz um script bem simples para pegar todas as constraints default de um determinado banco que esteja fora da nomenclatura “padro” (que eu considero boa)DF_Tabela_Colunapara ento deixar da forma como precisamos:

Aps executar o script acima, a execuo do “sp_help MinhaTabela” mostrar a constraint nomeada corretamente…

Caso queiram baixar para ver/brincar/usar, coloquei os scriptsaqui

Qualquer comentrio a respeito, inclusive melhorias (que muito provavelmente devem existir), faam. 😉

[]’s!

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.