[英]Returning only the column names from a SELECT statement
这只是一个懒惰的想法。 我有一个大约有 9 个列名的表。 有什么办法可以使用 SQL 语句只返回列名吗? 通常的方法是写出我的列名
SELECT * FROM tableName;
语句,但想知道是否可以使用 SQL 语句获取列名。
任何想法将不胜感激。
谢谢你!
SELECT COLUMN_NAME,*
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'tableName' AND TABLE_SCHEMA='dbo'
应该做
SET FMTONLY ON
SELECT * FROM tablename
打开您的 Microsoft SQL Server Management Studio,在新查询中,只需输入您的表名称并选择它,然后按ALT + F1键,它将提供有关表的所有详细信息
尝试按照 SQL 语句获取列名。
SELECT column_name
FROM information_schema.columns
WHERE TABLE_NAME='tableName'
您可以查询syscolumns表以获取表列元数据。
SELECT [name] AS [Column Name]
FROM syscolumns
WHERE id = (SELECT id FROM sysobjects WHERE [Name] = 'TableName')
请参阅此查询返回值的图像
引用自: 如何从 Oracle 中的表中获取列名?
select column_name,* from information_schema.columns where table_name = 'YourTableName' order by ordinal_position
使用 SQL Server xml raw 您可以从任何 sql 查询中获取列名。 替换下面示例中的“select top 1 * from [TABLENAME]”。 查询必须至少返回 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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.