仅返回SELECT语句中的列名

时间:2013-12-31 11:06:59

标签: c# asp.net sql select

这只是一个懒惰的想法。我有一个大约9列名称的表。有什么办法可以使用SQL语句只返回列名吗?通常的方法是从

中写出我的列名
SELECT * FROM tableName; 

语句但是想知道我是否可以使用SQL语句获取列名。

任何想法都将不胜感激。

谢谢你!

7 个答案:

答案 0 :(得分:5)

SELECT COLUMN_NAME,* 
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'tableName' AND TABLE_SCHEMA='dbo'

应该这样做

答案 1 :(得分:0)

在New Query中打开Microsoft SQL Server Management Studio,只需键入您的表名并选择它,然后按 ALT + F1 键,它将提供有关表的所有详细信息

答案 2 :(得分:0)

尝试使用以下SQL语句获取列名。

SELECT column_name   FROM information_schema.columns WHERE TABLE_NAME='tableName'

答案 3 :(得分:0)

SET FMTONLY ON
SELECT * FROM tablename

答案 4 :(得分:0)

  

您可以在 syscolumns 表中查询表列元数据。

 SELECT [name] AS [Column Name]
FROM syscolumns
WHERE id = (SELECT id FROM sysobjects WHERE  [Name] = 'TableName')

查看此图像查询返回值

enter image description here

参考:How can I get column names from a table in Oracle?

another one way

答案 5 :(得分:0)

从information_schema.columns中选择column_name,*  table_name ='YourTableName' 按ordinal_position排序

答案 6 :(得分:0)

使用SQL Server xml raw,您可以从任何sql查询中获取列名。从下面的示例中替换“选择[TABLENAME]中的顶部1 *”。查询必须返回至少1行数据,并记住使用前1位。

declare @t1 table (x xml)
declare @t2 table (x xml)
declare @t3 table (x xml)

insert into @t1 select cast( (select top 1 * from [TABLENAME] for xml raw) as xml)
insert into @t2 select y.r.query('.') from @t1 cross apply x.nodes('/row') as y(r)
insert into @t3 select t2.n.value('local-name(.)', 'varchar(max)') from @t2 t cross apply x.nodes('//@*') as t2(n)

select replace (convert (nvarchar, x),'_x0020_', ' ') from @t3
相关问题