Gostaria de consultar o nome de todas as colunas de uma tabela. Eu descobri como fazer isso em:
Mas preciso saber: como isso pode ser feito no Microsoft SQL Server (2008 no meu caso)?
sql
sql-server
sql-server-2008
tsql
odiseh
fonte
fonte
SELECT * FROM my_table WHERE 1=0
SELECT TOP 0 * FROM my_table
é menos teclas digitadasRespostas:
Você pode obter essas informações e muito mais consultando as visualizações do esquema de informações .
Esta consulta de exemplo:
Pode ser feito sobre todos esses objetos de banco de dados:
fonte
Nortwind.
...)SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = N'tableName';
isso funciona para mimTABLE_SCHEMA = '?' AND TABLE_NAME = '?'
pois estou no host local e tenho várias tabelas com o mesmo nome, mas em bancos de dados diferentes.Você pode usar o procedimento armazenado sp_columns, que retornaria informações pertencentes a todas as colunas para 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 através de uma consulta SQL. Algo assim deve ajudar:
Ou uma variação seria:
Isso obtém todas as colunas de todas as tabelas, ordenadas pelo nome da tabela e depois no nome da coluna.
fonte
Isso é melhor do que obter,
sys.columns
porque mostraDATA_TYPE
diretamente.fonte
AND TABLE_SCHEMA = 'schemaName'
aWHERE
cláusulaJOIN sys.types t on c.system_type_id = t.system_type_id
e adicionart.name
sua instrução 'SELECT' para obter os tipos ao lado do nome de cada coluna também.Você pode usar
sp_help
no SQL Server 2008.Atalho do teclado para o comando acima: selecione o nome da tabela (ou seja, destaque-o) e pressione ALT+ F1.
fonte
Ao usar esta consulta, você obtém a resposta:
fonte
Você pode escrever esta consulta para obter o nome da coluna e todos os detalhes sem usar o INFORMATION_SCHEMA no MySql:
fonte
fonte
TABLE_NAME
é sua mesafonte
fonte
Basta executar este comando
fonte
Esta questão SO está faltando a seguinte abordagem:
fonte
Ele irá verificar se o dado
table
é a tabela base .fonte
Você pode tentar isso. Isso fornece todos os nomes de colunas com seus respectivos tipos de dados.
fonte
você pode usar esta consulta
fonte
fonte
Uma outra opção que é sem dúvida mais intuitiva é:
Isso fornece todos os nomes de suas colunas em uma única coluna. Se você se preocupa com outros metadados, pode alterar a edição de SELECT STATEMENT TO
SELECT *
.fonte
Resumindo as respostas
Eu posso ver muitas respostas diferentes e maneiras de fazer isso, mas há um problema nisso e esse é o
objective
.Sim, o objetivo. Se você quiser
only know
os nomes das colunas, poderá usarMas se você quiser
use
essas colunas em algum lugar ou simplesmente dizê-manipulate
las, as consultas rápidas acima não serão úteis. Você precisa usarmais uma maneira de conhecer algumas colunas específicas nas quais precisamos de algumas colunas semelhantes
fonte
fonte
Simples e não requer nenhuma tabela sys
fonte