sql – 将列名插入表中

我正在尝试将一个表中的列名作为数据插入到SQL Server中的另一个表中.这是我正在使用的查询:

insert into TableB (Name)
select COLUMN_NAME
from information_schema.COLUMNS
where TABLE_NAME = 'TableA'

这将返回零行.我试过没有指定TABLE_NAME,也尝试指定TABLE_SCHEMA.这些都给出了结果,但不是我想要的.

最佳答案 我看不到您提供的SQL代码的任何问题.

更多故障排除

1)如果您查询:

select COLUMN_NAME
from information_schema.COLUMNS
where TABLE_NAME = 'TableA'

你有什么结果吗?

2)如果您尝试此INSERT,它是否有效?

INSERT INTO Table_1 (Name)
Select 'Name1'

3)如果您选择这些列,您是否在列表中看到了TABLE_NAME?

Select DISTINCT(TABLE_NAME) FROM INFORMATION_SCHEMA.columns

使用Microsoft的AdventureWorks-DB,您的sql代码对我来说效果很好(Table_1是一个带有列名的空表):

INSERT INTO dbo.Table_1 (Name)
Select COLUMN_NAME FROM INFORMATION_SCHEMA.columns
where TABLE_NAME = 'ProductInventory'

select * from table_1

输出:

ProductID
LocationID
Shelf
Bin
Quantity
rowguid
ModifiedDate
点赞