Como eu retornaria os nomes das colunas de uma tabela usando o SQL Server 2008? ou seja, uma tabela contém essas colunas - id, nome, endereço, país e eu quero devolvê-las como dados.
sql
sql-server
tsql
Belliez
fonte
fonte
Esta é a maneira mais fácil
fonte
Algo assim?
fonte
Um método é consultar syscolumns:
fonte
Objtype
redundante coluna, embora :)Isso parece um pouco mais fácil do que as sugestões acima, porque ele usa a função OBJECT_ID () para localizar o ID da tabela. Qualquer coluna com esse ID faz parte da tabela.
Normalmente, uso uma consulta semelhante para verificar se uma coluna que eu sei que faz parte de uma versão mais recente está presente. É a mesma consulta com a adição de {AND name = 'YOUR_COLUMN'} à cláusula where.
fonte
tente isso
...............................................
fonte
WHERE 1=2
e ainda retornará os metadados da coluna. Se você estiver usando uma interface programática como ODBC, as informações desta coluna poderão ser acessadas como uma lista / matriz do objeto cursor dentro do programa, que é o que eu estava procurando. Pode não fazer sentido em um contexto SQL puro, mas é uma abordagem sucinta ao se conectar a um banco de dados via Python / Java / C / etc.A seguir, parece ser a primeira consulta sugerida acima, mas em algum momento é necessário especificar o banco de dados para que ele funcione. Observe que a consulta também deve funcionar sem especificar o TABLE_SCHEMA:
fonte
eu uso
fonte
Por que não apenas tentar isso:
A lista inteira de colunas é fornecida no script. Copie-o e use os campos conforme necessário.
fonte
"I want to return these as data"
, embora sua resposta obtenha os valores, é provável que o OP deseje os dados em tempo de execução.USE[Database] SELECT TABLE_NAME,TABLE_SCHEMA,[Column_Name],[Data_type] FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA='dbo'
fonte
fonte
Não tenho certeza se o valor syscolumns.colid é o mesmo que o valor 'ORDINAL_POSITION' retornado como parte de sp_columns, mas, a seguir, estou usando dessa maneira - espero não estar desinformando ...
Aqui está uma pequena variação em algumas das outras respostas que encontrei - eu uso isso porque a 'posição' ou ordem da coluna na tabela é importante no meu aplicativo - basicamente preciso saber 'Como é chamada a coluna (n) ?
sp_columns retorna um monte de coisas estranhas, e eu sou mais habilidoso com funções select do que T-SQL, então segui esta rota:
fonte
Embora a resposta do @Gulzar Nazim seja ótima, provavelmente é mais fácil incluir o nome do banco de dados na consulta, o que pode ser alcançado pelo SQL a seguir.
fonte
Você pode usar o código abaixo para imprimir todos os nomes de colunas; Você também pode modificar o código para imprimir outros detalhes no formato que desejar.
Resultado
Para usar o mesmo código para imprimir a tabela e seu nome de coluna como classe C #, use o código abaixo:
Resultado:
fonte
Eu apenas uso uma consulta como Martin Smith mencionou, apenas um pouco mais curta:
fonte
fonte
Como SysColumns está obsoleto , use
Sys.All_Columns
:Select * From Sys.Types
produziráuser_type_id = ID
do tipo. Isso é único dentro do banco de dados. Para os tipos de dados do sistema:user_type_id = system_type_id
.fonte
fonte
Se você estiver trabalhando com o postgresql, existe a possibilidade de que mais de um esquema possa ter uma tabela com o mesmo nome; nesse caso, aplique a consulta abaixo
fonte
fonte