Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

FabianoSouza

Escolher colunas em tab do sistema

Recommended Posts

Com este código listo todas as colunas de todas as tabelas do BD. Sem segredo até aqui...

SELECT        object_id, name, column_id
FROM            sys.columns

Isso trás algumas milhares de linhas.

Vou filtrar para trazer as colunas de uma tab específica, usando o campo object_id.

Mesmo assim ainda aparecerão algumas colunas desnecessárias.

 

A pergunta é. Há alguma forma de escolher quais campos devem aparecer??

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Hmm.. Não entendi a lógica. Usaria o operador IN em consulta e sub consulta com a mesma tab do sistema?

 

O que preciso é escolher na tab de sistema (sys.columns) alguns campos específicos. Neste caso os campos são trazidos como registros.

 

Se fosse numa tab criada pelo usuário bastava usar o WHERE. Mas como se trata de tabela de sistema...

Compartilhar este post


Link para o post
Compartilhar em outros sites

SELECT object_id, name, column_id

FROM sys.columns

Where column_id in(1,3,5,6)

 

Algo assim

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para listar as colunas sim, basta fazer este select, mas eu faria um pouco mais completo:

 

 

select a.name as [table], b.name as [coluna], c.name, c.max_length, c.precision, c.scale
from sys.objects a inner join sys.columns b on a.object_id = b.object_id 
inner join sys.types c on c.user_type_id = b.user_type_id
where a.type = 'U' -- tabelas somente

 

Deste modo, pode-se filtrar o tipo de dado ou a coluna que precisa.

[]´s

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.