插入带有列的命令[重复]
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
【讨论】:
以上是关于插入带有列的命令[重复]的主要内容,如果未能解决你的问题,请参考以下文章
当 IDENTITY_INSERT 设置为 OFF 时,无法在表“tbl Fingerprint”中插入标识列的显式值 [重复]