Estavamos desenvolvendo aqui na empresa um método para atualização automática dos campos e tabelas no banco de dados, até que chegou o momento de verificarmos se existe no banco de dados uma determinada coluna, caso essa coluna não exista, ela deveria ser criada no banco de dados.
A primeira ideia que pensamos foi de fazer um select na tabela, e percorrer um DataTable comparando os nomes das colunas com a nova coluna, caso não existisse, executava um códio sql para criar essa coluna.
Pensei mais um pouco e decidi explorar o sql server, apos alguns momentos de estudo, fiz o codigo sql abaixo, onde é passado o nome da tabela e o nome do campo, então ele busca no banco de dados se há algum registro correspondente a essa tabela e campo.
O código é o seguinte:
select tabela.name as Tabela_BD,colunas.name as Coluna_BD
from sys.tables tabela inner join sys.columns colunas
on tabela.object_id = colunas.object_id
where tabela.name = 'NOME_DA_TABELA' and colunas.name = 'NOME_DA_COLUNA'
Subistituindo na consulta o nome da tabela e o nome da coluna, ao ser executado no banco de dados, caso exista, então ele retorna uma linha, caso não exista, ele não retorna nenhuma linha, e se retornar nenhuma linha, a coluna deve então ser criada.
Podemos tambem usar um pedaço desse código e verificar se no banco de dados existe uma tabela específica, para isso usamos o código abaixo:
select name as nometabela from sys.tables where tables.name = 'NOME_TABELA'
Caso exista, ele retorna o nome da tabela.
Até a Próxima
| |
| Comentários |
|
Tweet me!