【问题标题】:Insert into command with Columns [duplicate]插入带有列的命令[重复]
【发布时间】:2012-07-25 22:10:43
【问题描述】:

可能重复:
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    

【问题讨论】:

    标签: sql sql-server-2005


    【解决方案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 上运行。

    【讨论】:

    • 太棒了!没想过这个方法。谢谢迭戈!
    【解决方案2】:
    INSERT INTO NewTable
    SELECT COLUMN_NAME
    FROM INFORMATION_SCHEMA.COLUMNS
    WHERE TABLE_NAME = 'OldTable'
    

    【讨论】:

      【解决方案3】:

      您可以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
      

      【讨论】:

        猜你喜欢
        • 2010-12-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-04-23
        • 2013-08-11
        • 1970-01-01
        相关资源
        最近更新 更多