使用列插入命令

时间:2012-07-25 22:10:44

标签: sql sql-server-2005

  

可能重复:
  SQL Server: How do you return the column names from a table?

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

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

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

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

3 个答案:

答案 0 :(得分: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上运行。

答案 1 :(得分:1)

INSERT INTO NewTable
SELECT COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'OldTable'

答案 2 :(得分: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