Answers:
您可以通过查询Information Schema视图获得此信息,甚至更多。
此示例查询:
SELECT *
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = N'Customers'
可以在所有这些数据库对象上进行:
Nortwind....)
                    SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = N'tableName';这对我
                    TABLE_SCHEMA = '?' AND TABLE_NAME = '?'因为我在localhost上,并且我有多个具有相同名称但在不同数据库中的表。
                    您可以使用存储过程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直接显示。
AND TABLE_SCHEMA = 'schemaName'该WHERE子句。
                    JOIN sys.types t on c.system_type_id = t.system_type_id和添加t.name“ SELECT”语句以获取每个列名称旁边的类型。
                    您可以编写此查询来获取列名和所有详细信息,而无需在MySql中使用INFORMATION_SCHEMA:
SHOW COLUMNS FROM database_Name.table_name;
              --This is another variation used to document a large database for conversion (Edited to --remove static columns)
SELECT o.Name                   as Table_Name
     , c.Name                   as Field_Name
     , t.Name                   as Data_Type
     , t.length                 as Length_Size
     , t.prec                   as Precision_
FROM syscolumns c 
     INNER JOIN sysobjects o ON o.id = c.id
     LEFT JOIN  systypes t on t.xtype = c.xtype  
WHERE o.type = 'U' 
ORDER BY o.Name, c.Name
--In the left join, c.type is replaced by c.xtype to get varchar types
              SELECT c.Name 
FROM sys.columns c
JOIN sys.objects o ON o.object_id = c.object_id
WHERE o.object_id = OBJECT_ID('TABLE_NAME')
ORDER BY c.Name
              可以说更直观的另一种选择是:
SELECT [name] 
FROM sys.columns 
WHERE object_id = OBJECT_ID('[yourSchemaType].[yourTableName]') 
这样一来,您即可获得所有列名。如果您关心其他元数据,则可以将SELECT STATEMENT TO更改为编辑SELECT *。
总结答案
我可以看到许多不同的答案和方式,但是确实存在问题objective。
是的,目标。如果要only know使用列名,可以使用
SELECT * FROM my_table WHERE 1=0
or
SELECT TOP 0 * FROM my_table
但是,如果您想将use这些列放在某处或简单地说manipulate出来,那么上面的快速查询将毫无用处。您需要使用
SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = N'Customers'
了解某些特定列的另一种方法,我们需要一些类似的列
SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME like N'%[ColumnName]%' and TABLE_NAME = N'[TableName]'
              SELECT COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'name_of_your_table'
              
SELECT * FROM my_table WHERE 1=0