2008-09-19 13 views

Odpowiedz

54

MySQL 3 i 4 (oraz 5)

desc tablename 

który alias

show fields from tablename 

SQL Server (z 2000 roku) oraz MySQL 5:

select COLUMN_NAME from INFORMATION_SCHEMA.COLUMNS 
where TABLE_NAME = 'tablename' 

Zakończenie odpowiedź: jak ludzie poniżej powiedzieli, w SQL Server można również użyć procedury przechowywanej sp_help

exec sp_help 'tablename' 
+0

informacje o schemacie są dostępne w SQL Server 2000 również. – Martynnw

+0

I w Postgres, od od 8.0 (nie sprawdzano w starszych wersjach) – Mureinik

+0

działa również: wyświetla kolumny z tablename – Amnon

1

Jeśli chcesz tylko nazwy kolumn, a następnie

select COLUMN_NAME from INFORMATION_SCHEMA.COLUMNS where TABLE_NAME = 'tablename' 

W MS SQL Server, aby uzyskać więcej informacji na stole, takie jak typy kolumn, użyj

sp_help 'tablename' 
10

SQL Standard -92 definiuje INFORMATION_SCHEMA zgodny z rdbms jak wsparcie MS SQL Server. Następujące prace dla MS SQL Server 2000/2005/2008 oraz MySQL 5 i nowsze

select COLUMN_NAME from INFORMATION_SCHEMA.COLUMNS where TABLE_NAME = 'myTable' 

MS SQL Server szczególnych:

exec sp_help 'myTable' 

To rozwiązanie zwraca kilka zestawów wyników w ramach którego informacje pragnienie, gdzie jako pierwszy daje ci dokładnie to, czego chcesz.

Również w celu kompletności można bezpośrednio zapytać o tabele sys. Nie jest to zalecane, ponieważ schemat może się zmieniać między wersjami SQL Server a INFORMATION_SCHEMA jest warstwą abstrakcji nad tymi tabelami. Ale tutaj jest to w każdym razie dla SQL Server 2000

select [name] from dbo.syscolumns where id = object_id(N'[dbo].[myTable]') 
1

MySQL jest taka sama:

select COLUMN_NAME from INFORMATION_SCHEMA.COLUMNS where TABLE_NAME = 'tablename' 
4

Można użyć dostarczonych widoki systemowe, aby to zrobić:

np

select * from INFORMATION_SCHEMA.COLUMNS 
where table_name = '[table name]' 

alternatywnie można użyć systemu proc sp_help

np

sp_help '[table name]' 
2

Jest również MySQL szczegółowy:

show fields from [tablename]; 

to robi tylko pokazać nazwy tabel, ale także wyciąga wszystkie informacje o polach.

0

MySQL

describe tablename 
4

Dla tych, którzy szukają odpowiedzi w Oracle:

SELECT column_name FROM user_tab_columns WHERE table_name = 'TABLENAME' 
4

PostgreSQL składni rozumie się

select column_name from information_schema.columns where table_name = 'myTable' 

. Jeśli pracujesz w powłoce psql, można również użyć

\d myTable 

dla opisu (kolumny, i ich typy danych i ograniczenia)

3

Tylko dla kompletności, ponieważ MySQL i PostgreSQL zostały już wymienione: z SQLite, użyj "pragma table_info()"

sqlite> pragma table_info('table_name'); 
cid   name  type  notnull  dflt_value pk   
---------- ---------- ---------- ---------- ---------- ---------- 
0   id   integer  99      1   
1   name     0      0   
2

W Sybase SQL Anywhere, kolumny i informacje tabeli są przechowywane oddzielnie, więc trzeba dołączyć:

select c.column_name from systabcol c 
     key join systab t on t.table_id=c.table_id 
     where t.table_name='tablename' 
1

Dla IBM DB2 (będzie dokładnie sprawdzić to w poniedziałek, aby mieć pewność.)

SELECT TABNAME,COLNAME from SYSCAT.COLUMNS where TABNAME='MYTABLE'