我如何返回一个表的列名使用SQL Server 2008?即一个表包含这些列- id,名称,地址,国家,我想返回这些数据。


当前回答

虽然@Gulzar Nazim的回答很好,但在查询中包含数据库名称可能更容易,这可以通过下面的SQL实现。

SELECT COLUMN_NAME, *
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'you-table-name' AND TABLE_CATALOG='your-database-name'

其他回答

下面的查询看起来像上面建议的第一个查询,但有时您必须指定数据库才能使其工作。注意,查询在没有指定TABLE_SCHEMA的情况下也可以工作:

SELECT COLUMN_NAME
FROM   YOUR_DB_NAME.INFORMATION_SCHEMA.COLUMNS
WHERE  TABLE_NAME = 'YOUR_TABLE_NAME' AND TABLE_SCHEMA = 'YOUR_DB_NAME'

如果你正在使用postgresql,有可能不止一个模式有相同名称的表,在这种情况下应用下面的查询

SELECT column_name, data_type 
FROM information_schema.columns
WHERE table_name = 'your_table_name' AND table_schema = 'your_schema_name’;

虽然@Gulzar Nazim的回答很好,但在查询中包含数据库名称可能更容易,这可以通过下面的SQL实现。

SELECT COLUMN_NAME, *
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'you-table-name' AND TABLE_CATALOG='your-database-name'
set fmtonly on
select * from yourTable

不确定2008版是否有更简单的方法。

USE [Database Name]
SELECT COLUMN_NAME,* 
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'YourTableName' AND TABLE_SCHEMA='YourSchemaName'