我試圖從一個表中將列名作爲數據插入到另一個SQL Server中。這是我正在使用的查詢:將列名插入表中
insert into TableB (Name)
select COLUMN_NAME
from information_schema.COLUMNS
where TABLE_NAME = 'TableA'
這會返回零行。我嘗試過不指定TABLE_NAME,並嘗試指定TABLE_SCHEMA。這些都給出了結果,但不是我要找的。
我試圖從一個表中將列名作爲數據插入到另一個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
您的SQL代碼的工作很適合我用的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
輸出:
ProductID
LocationID
Shelf
Bin
Quantity
rowguid
ModifiedDate
我在嘗試插入前運行select部分,並返回0行。插入作品。 TABLE_NAME不在列表中,似乎問題在於我搜索的表位於服務器上的其他數據庫中。謝謝。 –
@WilliamCox我總是很樂意幫忙。 ;) –
您的查詢應該儘可能地發揮作用可以說,這麼說,我總是使用這些查詢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'
你看到的值你所期望的,當你只是運行:'SELECT COLUMN_NAME,TABLE_NAME FROM INFORMATION_SCHEMA .COLUMNS'? –
@GoatCO我期待的價值觀以及許多我不想插入的東西。 –
當你從這些結果中添加'WHERE'標準和表名時,你什麼都得不到? –