table - sql server select column name




Como posso obter nomes de coluna de uma tabela no SQL Server? (12)

- Essa é outra variação usada para documentar um grande banco de dados para conversão (Editado para - remover colunas estáticas)

SELECT o.Name                   as Table_Name
     , c.Name                   as Field_Name
     , t.Name                   as Data_Type
     , t.length                 as Length_Size
     , t.prec                   as Precision_
FROM syscolumns c 
     INNER JOIN sysobjects o ON o.id = c.id
     LEFT JOIN  systypes t on t.xtype = c.xtype  
WHERE o.type = 'U' 
ORDER BY o.Name, c.Name

- Na junção esquerda, c.type é substituído por c.xtype para obter tipos varchar

Eu gostaria de consultar o nome de todas as colunas de uma tabela. Eu encontrei como fazer isso em:

Mas eu preciso saber: como isso pode ser feito no Microsoft SQL Server (2008 no meu caso)?


Ao usar essa consulta, você obtém a resposta:

select Column_name 
from Information_schema.columns 
where Table_name like 'table name'

Esta pergunta SO está faltando a seguinte abordagem:

-- List down all columns of table 'Logging'
select * from sys.all_columns where object_id = OBJECT_ID('Logging')

Irá verificar se o dado da table é Base Table .

SELECT 
    T.TABLE_NAME AS 'TABLE NAME',
    C.COLUMN_NAME AS 'COLUMN NAME'
FROM INFORMATION_SCHEMA.TABLES T
INNER JOIN INFORMATION_SCHEMA.COLUMNS C ON T.TABLE_NAME=C.TABLE_NAME
    WHERE   T.TABLE_TYPE='BASE TABLE'
            AND T.TABLE_NAME LIKE 'Your Table Name'

Você pode escrever essa consulta para obter o nome da coluna e todos os detalhes sem usar INFORMATION_SCHEMA no MySql:

SHOW COLUMNS FROM database_Name.table_name;

Você pode obter essas informações e muito, muito mais, consultando as exibições do Esquema de Informações .

Esta consulta de exemplo:

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

Pode ser feito em todos esses objetos do banco de dados:


Você pode usar o sp_help no SQL Server 2008.

sp_help <table_name>;

Atalho de teclado para o comando acima: selecione o nome da tabela (isto é, destaque-o) e pressione ALT + F1 .


Você pode usar o procedimento armazenado sp_columns que retornaria informações pertencentes 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. Alguma coisa assim deveria 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

Isso obtém todas as colunas de todas as tabelas, ordenadas pelo nome da tabela e, em seguida, pelo nome da coluna.


SELECT COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'name_of_your_table'

SELECT c.Name 
FROM sys.columns c
JOIN sys.objects o ON o.object_id = c.object_id
WHERE o.object_id = OBJECT_ID('TABLE_NAME')
ORDER BY c.Name

SELECT name
FROM sys.columns
WHERE object_id = OBJECT_ID('TABLE_NAME')

// TABLE_NAME é sua mesa


select *
from INFORMATION_SCHEMA.COLUMNS
where TABLE_NAME='tableName'

Isso é melhor do que obter de sys.columns porque mostra DATA_TYPE diretamente.







tsql