将列名插入表中

Wil*_*Cox 5 sql sql-server

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

insert into TableB (Name)
select COLUMN_NAME
from information_schema.COLUMNS
where TABLE_NAME = 'TableA'
Run Code Online (Sandbox Code Playgroud)

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

Fab*_*ler 3

我看不出您提供的 SQL 代码有任何问题。

更多故障排除:

1)如果您查询:

select COLUMN_NAME
from information_schema.COLUMNS
where TABLE_NAME = 'TableA'
Run Code Online (Sandbox Code Playgroud)

你有结果吗?

2)如果你尝试这个INSERT,它有效吗?

INSERT INTO Table_1 (Name)
Select 'Name1'
Run Code Online (Sandbox Code Playgroud)

3)如果选择这些列,您会在列表中看到 TABLE_NAME 吗?

Select DISTINCT(TABLE_NAME) FROM INFORMATION_SCHEMA.columns
Run Code Online (Sandbox Code Playgroud)

你的 sql 代码对我来说与 Microsoft 的 AdventureWorks-DB 配合得很好(Table_1是一个带有列名的空表):

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

select * from table_1
Run Code Online (Sandbox Code Playgroud)

输出:

ProductID
LocationID
Shelf
Bin
Quantity
rowguid
ModifiedDate
Run Code Online (Sandbox Code Playgroud)