可能重复:
SQL Server:如何从表中返回列名?
我想知道是否有办法将表中的列名插入到另一个表中的字段中。
我有一个新表,其中旧表的列名现在是新表中的参数。
IE。
old table
[id] [name] [name2] [name3]
1 x x x
new table
[id] [name type]
1 name
2 name2
3 name3
可能重复:
SQL Server:如何从表中返回列名?
我想知道是否有办法将表中的列名插入到另一个表中的字段中。
我有一个新表,其中旧表的列名现在是新表中的参数。
IE。
old table
[id] [name] [name2] [name3]
1 x x x
new table
[id] [name type]
1 name
2 name2
3 name3
以下查询将返回指定表的列:
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 上运行。
INSERT INTO NewTable
SELECT COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'OldTable'
您可以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