这只是一个懒惰的想法。我有一个大约9列名称的表。有什么办法可以使用SQL语句只返回列名吗?通常的方法是从
中写出我的列名SELECT * FROM tableName;
语句但是想知道我是否可以使用SQL语句获取列名。
任何想法都将不胜感激。
谢谢你!
答案 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')
查看此图像查询返回值
答案 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