我如何从SQL Server中的表中获取列名?

我想查询表中所有列的名称。 我发现如何做到这一点:

  • 神谕
  • MySQL的
  • PostgreSQL的
  • 但是我需要知道:这怎么能在Microsoft SQL Server(2008在我的情况下)中完成?


    通过查询信息模式视图,您可以获得这些信息以及更多信息。

    此示例查询:

    SELECT *
    FROM Northwind.INFORMATION_SCHEMA.COLUMNS
    WHERE TABLE_NAME = N'Customers'
    

    可以在所有这些数据库对象上完成:

  • CHECK_CONSTRAINTS
  • COLUMN_DOMAIN_USAGE
  • COLUMN_PRIVILEGES
  • CONSTRAINT_COLUMN_USAGE
  • CONSTRAINT_TABLE_USAGE
  • DOMAIN_CONSTRAINTS
  • DOMAINS
  • KEY_COLUMN_USAGE
  • 参数
  • REFERENTIAL_CONSTRAINTS
  • 例程
  • ROUTINE_COLUMNS
  • SCHEMATA
  • TABLE_CONSTRAINTS
  • TABLE_PRIVILEGES
  • TABLES
  • VIEW_COLUMN_USAGE
  • VIEW_TABLE_USAGE
  • VIEWS

  • 您可以使用存储过程sp_columns,它将返回有关给定表的所有列的信息。 更多信息可以在这里找到http://msdn.microsoft.com/en-us/library/ms176077.aspx

    你也可以通过SQL查询来完成。 有些事情应该会有所帮助 -

    SELECT * FROM sys.columns WHERE object_id = OBJECT_ID('dbo.yourTableName') 
    

    或者一个变化是:

    SELECT   o.Name, c.Name
    FROM     sys.columns c 
             JOIN sys.objects o ON o.object_id = c.object_id 
    WHERE    o.type = 'U' 
    ORDER BY o.Name, c.Name
    

    这将从所有表中获取所有列,按表名称排序,然后按列名排序。


    select *
    from INFORMATION_SCHEMA.COLUMNS
    where TABLE_NAME='tableName'
    

    这比从sys.columns获得更好,因为它直接显示DATA_TYPE

    链接地址: http://www.djcxy.com/p/2733.html

    上一篇: How can I get column names from a table in SQL Server?

    下一篇: How does the SQL injection from the "Bobby Tables" XKCD comic work?