插入带有列的命令[重复]

Posted

技术标签:

【中文标题】插入带有列的命令[重复]【英文标题】: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    

【问题讨论】:

【参考方案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

【讨论】:

以上是关于插入带有列的命令[重复]的主要内容,如果未能解决你的问题,请参考以下文章

MySQL - 知道下一个 ID [重复]

返回带有列的表[重复]

在 C# 中插入具有重复记录列的 BigQuery 行

使用带有重复行和新列的 SQL Server 创建视图

带有弹性框的基于列的网格[重复]

当 IDENTITY_INSERT 设置为 OFF 时,无法在表“tbl Fingerprint”中插入标识列的显式值 [重复]