如何使用SQL Server 2008返回表的列名?即一个表包含这些列 - id,name,address,country,我想将这些作为数据返回.
不确定2008版本是否有更简单的方法.
USE [Database Name] SELECT COLUMN_NAME,* FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'YourTableName' AND TABLE_SCHEMA='YourSchemaName'
这是最简单的方法
exec sp_columns [tablename]
像这样的东西?
sp_columns @table_name=your table name
一种方法是查询syscolumns:
select syscolumns.name as [Column], syscolumns.xusertype as [Type], sysobjects.xtype as [Objtype] from sysobjects inner join syscolumns on sysobjects.id = syscolumns.id where sysobjects.xtype = 'u' and sysobjects.name = 'MyTableName' order by syscolumns.name
这似乎比上面的建议容易一些,因为它使用OBJECT_ID()函数来定位表的id.具有该id的任何列都是表的一部分.
SELECT * FROM syscolumns WHERE id=OBJECT_ID('YOUR_TABLE')
我通常使用类似的查询来查看我知道的列是否是新版本的一部分.与where子句添加{AND name ='YOUR_COLUMN'}的查询相同.
IF EXISTS ( SELECT * FROM syscolumns WHERE id=OBJECT_ID('YOUR_TABLE') AND name='YOUR_COLUMN' ) BEGIN PRINT 'Column found' END
试试这个
select * fromwhere 1=2
...............................................
以下内容似乎与上述第一个建议的查询类似,但是有时您必须指定数据库才能使其正常工作。请注意,该查询也应在不指定TABLE_SCHEMA的情况下运行:
SELECT COLUMN_NAME FROM YOUR_DB_NAME.INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'YOUR_TABLE_NAME' AND TABLE_SCHEMA = 'YOUR_DB_NAME'