What is the SQL command to return the field names of a table?

后端 未结 12 1173
野的像风
野的像风 2020-12-05 07:03

Say I have a table called myTable. What is the SQL command to return all of the field names of this table? If the answer is database specific then I need SQL Server right

相关标签:
12条回答
  • 2020-12-05 07:25

    You can use the provided system views to do this:

    eg

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

    alternatively, you can use the system proc sp_help

    eg

    sp_help '[table name]'
    
    0 讨论(0)
  • 2020-12-05 07:26

    SQL-92 standard defines INFORMATION_SCHEMA which conforming rdbms's like MS SQL Server support. The following works for MS SQL Server 2000/2005/2008 and MySql 5 and above

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

    MS SQl Server Specific:

    exec sp_help 'myTable'
    

    This solution returns several result sets within which is the information you desire, where as the former gives you exactly what you want.

    Also just for completeness you can query the sys tables directly. This is not recommended as the schema can change between versions of SQL Server and INFORMATION_SCHEMA is a layer of abstraction above these tables. But here it is anyway for SQL Server 2000

    select [name] from dbo.syscolumns where id = object_id(N'[dbo].[myTable]')
    
    0 讨论(0)
  • 2020-12-05 07:27

    Just for completeness, since MySQL and Postgres have already been mentioned: With SQLite, use "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         
    
    0 讨论(0)
  • 2020-12-05 07:28

    For IBM DB2 (will double check this on Monday to be sure.)

    SELECT TABNAME,COLNAME from SYSCAT.COLUMNS where TABNAME='MYTABLE'
    
    0 讨论(0)
  • 2020-12-05 07:30

    MySQL 3 and 4 (and 5):

    desc tablename
    

    which is an alias for

    show fields from tablename
    

    SQL Server (from 2000) and MySQL 5:

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

    Completing the answer: like people below have said, in SQL Server you can also use the stored procedure sp_help

    exec sp_help 'tablename'
    
    0 讨论(0)
  • 2020-12-05 07:30

    If you just want the column names, then

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

    On MS SQL Server, for more information on the table such as the types of the columns, use

    sp_help 'tablename'
    
    0 讨论(0)
提交回复
热议问题