1

可能重复:
SQL Server:如何从表中返回列名?

我想知道是否有办法将表中的列名插入到另一个表中的字段中。

我有一个新表,其中旧表的列名现在是新表中的参数。

IE。

old table
[id] [name] [name2] [name3]
  1    x      x       x

new table
[id] [name type]
 1    name
 2    name2
 3    name3    
4

3 回答 3

1

以下查询将返回指定表的列:

SELECT COL.COLUMN_NAME
FROM
    information_schema.columns COL
WHERE 
    (COL.TABLE_SCHEMA = 'schema_name') AND
    (CO.TABLE_NAME = 'table_name')

您可以使用结果集并将其插入临时表中,或者将其用于您需要的任何内容。

注意:我在 SQL Server 2008 上运行它,但它也应该在 2005 上运行。

于 2012-07-25T22:19:52.507 回答
1
INSERT INTO NewTable
SELECT COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'OldTable'
于 2012-07-25T22:21:41.460 回答
1

您可以SELECT INTO使用新表或临时表。下面的示例是一个临时表:

SELECT COLUMN_NAME
into #temp
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = 'yourSchema' AND
    TABLE_NAME = 'yourTable'

select *
from #temp

drop table #temp
于 2012-07-25T22:31:23.860 回答