2017-11-10 47 views
0

在我的SQL相當生疏..什麼我期待的是通過搜索我的所有表給定列開始SQL列搜索..然後使用它作爲表

SELECT @myTables = TABLE_NAME 
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE COLUMN_NAME LIKE '%myColumn%' 

然後我想用結果和運行,像這樣的搜索對每條記錄

select * from @myTables[0] 
select * from @myTables[1] 

....

等..我希望我在描述我所期待的明確。

謝謝你的幫助。

+0

使用'插入@ myTables'而不是'選擇@myTables =',然後使用動態SQL來獲取數據。 – Sami

+0

你在尋找單一語句,一個存儲過程還是你在尋找更多的方法來生成一個sql查詢來搜索數據?你期望在每個表中選擇相同數量的字段嗎? – varubi

+0

你基本上只是想像'SELECT @myTables = COALESCE(@myTables,'')+'SELECT * FROM'+ QUOTENAME(TABLE_NAME)+';' FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME LIKE'%myColumn%「;'然後'exec sp_executesql @myTables;' – ZLK

回答

0
SELECT 'SELECT * FROM '+ TABLE_NAME 
    FROM INFORMATION_SCHEMA.COLUMNS 
    WHERE COLUMN_NAME LIKE '%myColumn%' 

這個查詢將返回您所期望的所有SELECT查詢。

,如果你想獲得那些選擇查詢的結果:

DECLARE @SQLQuery VARCHAR(MAX) 

    SELECT @SQLQuery = COALESCE(@SQLQuery,'')+'SELECT * FROM '+ TABLE_NAME+';' 
    FROM INFORMATION_SCHEMA.COLUMNS 
    WHERE COLUMN_NAME LIKE '%myColumn%' 

    SELECT @SQLQuery 

    EXEC (@SQLQuery) 
相關問題