Verificar Campo no SQL Server

SQL Server

26/02/2008

Como posso verificar se existe um determinado campo em uma tebala?

ex: gostaria de verificar na tabela X se existe o campo Z

tb preciso saber como posso gerar uma instrução SQL para adicionar o campo se o mesmo não existir, mais isso sem apagar os dados que ja contem na tabela;

utilizo SQL Server

Obrigado Pessoal;


Cd.wagner.sena

Cd.wagner.sena

Curtidas 0

Respostas

Ara.es

Ara.es

26/02/2008

Tente essa query:

SELECT *
FROM   SYSOBJECTS OBJ INNER JOIN SYSCOLUMNS COL
         ON OBJ.ID = COL.ID
WHERE  OBJ.NAME LIKE ´NOME_TABELA´


onde NOME_TABELA é o nome de uam tabela de seu banco, caso queira mostrar de todas basta retirar o where, so que ai ele mostrara as tabelas de sistemas tbm. ai o que vc pode fazer é um Where setando a coluna xtype da tabela sysobjects para ´U´ que é tabelas de usuario.

Não sei se conhece mas a tabela Sysobjects contem a lista todos os objetos do banco de dados, Tabelas, views, triggers, indices e a syscolumns como o proprio nome diz as colunas das tabelas. procure no help do SQL Server ele é bem rico nessas informações. Ou qualquer coisa é só postar. Flw !!

Se quizer uma query melhor montade me diga o que deseja, fiz essa com rapidez, mas ja fiz uma ha tempos atras que monstrava de forma mais clara o tipo e tamanho dos campos entre outras informações. FLW !! Até mais.


GOSTEI 0
Cd.wagner.sena

Cd.wagner.sena

26/02/2008

valeu amigo!

agora so me resta o segundo problema, preiso de uma instrução SQL para inserir o campo caso ele nao seja localizado na consulta, mais a tabela ja existe e nao posso apagar os dados que ela contem, apenas quero incluir mais um campo na mesma, sei que o mesmo.

me ajudem ai...


GOSTEI 0
Ara.es

Ara.es

26/02/2008

é so dar um ALTER TABLE, inserindo a coluna, quando vc insere um coluna nova o SQL Server não apaga os registros, caso o campo que vc for adicionar nao aceite null, vc deve definir um valor default, todos os registros que ja estao na tabela receberao esse valor para o novo campo. Flw ate mais, precisar e so falar.


GOSTEI 0
POSTAR