Sql 将列名插入表中
我正在尝试在SQLServer中将一个表中的列名作为数据插入到另一个表中。这是我正在使用的查询:Sql 将列名插入表中,sql,sql-server,Sql,Sql Server,我正在尝试在SQLServer中将一个表中的列名作为数据插入到另一个表中。这是我正在使用的查询: insert into TableB (Name) select COLUMN_NAME from information_schema.COLUMNS where TABLE_NAME = 'TableA' 这将返回零行。我尝试过不指定表名称,也尝试过指定表模式。它们都给出了结果,但不是我想要的。我看不出您提供的SQL代码有任何问题 更多疑难解答: ProductID LocationID Sh
insert into TableB (Name)
select COLUMN_NAME
from information_schema.COLUMNS
where TABLE_NAME = 'TableA'
这将返回零行。我尝试过不指定表名称,也尝试过指定表模式。它们都给出了结果,但不是我想要的。我看不出您提供的SQL代码有任何问题 更多疑难解答:
ProductID
LocationID
Shelf
Bin
Quantity
rowguid
ModifiedDate
1)如果您查询:
select COLUMN_NAME
from information_schema.COLUMNS
where TABLE_NAME = 'TableA'
你有什么结果吗?
INSERT INTO Table_1 (Name)
Select 'Name1'
Select DISTINCT(TABLE_NAME) FROM INFORMATION_SCHEMA.columns
2)如果您尝试此插入,是否有效?
INSERT INTO Table_1 (Name)
Select 'Name1'
Select DISTINCT(TABLE_NAME) FROM INFORMATION_SCHEMA.columns
3)如果选择这些列,您是否在列表中看到表名?
INSERT INTO Table_1 (Name)
Select 'Name1'
Select DISTINCT(TABLE_NAME) FROM INFORMATION_SCHEMA.columns
您的sql代码在Microsoft的AdventureWorks DB中运行良好(
Table_1
是一个带有列名的空表):
输出:
ProductID
LocationID
Shelf
Bin
Quantity
rowguid
ModifiedDate
就我所知,您的查询应该可以正常工作,也就是说,我总是使用sys.columns和sys.tables进行这些查询,请尝试:
SELECT c.name ColumnName
FROM sys.columns c
JOIN sys.tables t
ON c.object_id = t.object_id
WHERE t.name = 'TableA'
当您刚刚运行时,是否看到预期的值:
从信息模式中选择列名称、表名称。列?@GoatCO我预期的值在那里,以及许多我不想插入的内容。当您使用这些结果中的表名添加WHERE
条件时,您将一无所获?在尝试插入之前,我正在运行select部分,它返回0行。插入工作。表名称不在列表中,问题似乎是我搜索的表位于服务器上的另一个数据库中。谢谢你。@WilliamCox我总是很乐意帮忙