Como posso obter nomes de colunas de uma tabela no SQL Server?

Gostaria de consultar o nome de todas as colunas de uma tabela. Descobri como fazer isto em:

Mas eu preciso de saber: Como isto pode ser feito em Microsoft SQL Server (2008 no meu caso)?

Solução

Você pode obter esta informação e muito, muito mais consultando a Information Schema views.

Este exemplo de consulta:

SELECT *
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = N'Customers'

Pode ser feito sobre todos estes objetos DB:

Comentários (6)

É possível usar o procedimento armazenado sp_columns, que retornaria informações referentes a todas as colunas de uma determinada tabela. Mais informações podem ser encontradas aqui http://msdn.microsoft.com/en-us/library/ms176077.aspx

Você também pode fazer isso por uma consulta SQL. Uma coisa como esta deve ajudar:

SELECT * FROM sys.columns WHERE object_id = OBJECT_ID('dbo.yourTableName') 

Ou uma variação seria:

SELECT   o.Name, c.Name
FROM     sys.columns c 
         JOIN sys.objects o ON o.object_id = c.object_id 
WHERE    o.type = 'U' 
ORDER BY o.Name, c.Name

Isto obtém todas as colunas de todas as tabelas, ordenadas pelo nome da tabela e depois no nome da coluna.

Comentários (0)

Ao usar esta consulta você obtém a resposta:

select Column_name 
from Information_schema.columns 
where Table_name like 'table name'
Comentários (0)