Para os vários sistemas populares de banco de dados, como você lista todas as colunas em uma tabela?
Para os vários sistemas populares de banco de dados, como você lista todas as colunas em uma tabela?
Respostas:
Para o MySQL, use:
DESCRIBE name_of_table;
Isso também funciona para o Oracle, desde que você esteja usando o SQL * Plus ou o SQL Developer da Oracle.
DESCRIBE
name_of_table``;
DESCRIBE
não é uma instrução Oracle PLSQL, mas um comando SQL * Plus e, como tal, não funciona na maioria dos IDEs SQL.
Para Oracle (PL / SQL)
SELECT column_name
FROM user_tab_cols
WHERE table_name = 'myTableName'
Para MySQL
SHOW COLUMNS FROM table_name
DESCRIBE name_of_table
.
user_tab_cols
em sua consulta?
Para MS SQL Server:
select * from information_schema.columns where table_name = 'tableName'
information_schema.columns
a visualização do sistema faz parte do ANSI SQL
padrão ( link ).
select COLUMN_NAME from information_schema.columns where table_name = 'tableName' and table_schema = 'databaseName'
(5 anos depois, para a Honra do PostgreSQL, o DDBB mais avançado do Reino)
No PostgreSQL:
\d table_name
Ou, usando SQL:
select column_name, data_type, character_maximum_length
from INFORMATION_SCHEMA.COLUMNS
where table_name = 'table_name';
Eu sei que é tarde, mas eu uso este comando para Oracle:
select column_name,data_type,data_length from all_tab_columns where TABLE_NAME = 'xxxx' AND OWNER ='xxxxxxxxxx'
servidor SQL
SELECT
c.name
FROM
sys.objects o
INNER JOIN
sys.columns c
ON
c.object_id = o.object_id
AND o.name = 'Table_Name'
ou
SELECT
COLUMN_NAME
FROM
INFORMATION_SCHEMA.COLUMNS
WHERE
TABLE_NAME = 'Table_Name'
A segunda maneira é um padrão ANSI e, portanto, deve funcionar em todos os bancos de dados compatíveis com ANSI.
[
]
contorno, portanto a consulta não deve usá-los, apenas o nome da tabela simples. Se essa não era a intenção do OP, pelo menos esteja ciente disso.
<Table Name>
evitasse a ambiguidade. Enfim, eu percebi que você poderia ter pretendido que, enquanto escrevi o comentário - não faz mal avisar os outros por precaução.
Microsoft SQL Server Management Studio 2008 R2:
Em um editor de consultas, se você destacar o texto do nome da tabela (por exemplo, dbo.MyTable) e pressionar ALT+ F1, receberá uma lista de nomes de colunas, tipo, comprimento, etc.
ALT+ F1enquanto você destacou dbo.MyTable
é o equivalente à execução de EXEC sp_help 'dbo.MyTable'
acordo com este site
Não consigo obter as variações na consulta de BUSINESS_SCHEMA.COLUMNS, então uso isso.
servidor SQL
Para listar todas as tabelas definidas pelo usuário de um banco de dados:
use [databasename]
select name from sysobjects where type = 'u'
Para listar todas as colunas de uma tabela:
use [databasename]
select name from syscolumns where id=object_id('tablename')
Apenas uma pequena correção nos outros no SQL Server (o prefixo do esquema está se tornando mais importante!):
SELECT name
FROM sys.columns
WHERE [object_id] = OBJECT_ID('dbo.tablename');
Exemplo:
select Table_name as [Table] , column_name as [Column] , Table_catalog as [Database], table_schema as [Schema] from information_schema.columns
where table_schema = 'dbo'
order by Table_name,COLUMN_NAME
Apenas meu código