2017-10-09 76 views
0

我正在使用查詢向我提供某個列名'place'的所有表。 此後我想在新查詢中使用輸出來搜索所有提供的表中的字符串。SQL:你可以在表格的輸出中搜索嗎?

我用列出表的查詢是:

SELECT  c.name AS 'ColumnName' 
       ,t.name AS 'TableName' 
FROM  sys.columns c 
JOIN  sys.tables t ON c.object_id = t.object_id 
WHERE  c.name LIKE '%place%' 
ORDER BY TableName 
     ,ColumnName; ; ; 
+0

您需要使用動態SQL - 即爲每個查詢構建SQL查詢並執行它。 –

+0

您是否已經知道要搜索的每個結果表中的列? –

+1

我刪除了[tag:mysql]標籤,因爲這不是關於MySQL的。 –

回答

0

使用sp_executesql存儲過程,你可以執行,可以多次重複使用或已動態生成一個SQL語句。您可以在新查詢中使用輸出。

例子:

--Declare variable 
DECLARE @SQLQuery NVARCHAR(MAX) 

--Build SQL String 
SET @SQLQuery = 'SELECT  c.name AS ''ColumnName'',t.name AS ''TableName'' FROM sys.columns c 
JOIN sys.tables t ON c.object_id = t.object_id 
WHERE c.name LIKE ''%place%'' 
ORDER BY TableName, ColumnName; ; ;' 

--Execute Transact-SQL String 
EXECUTE sp_executesql @SQLQuery 

我希望你能在這之後進行。您可以從sp_executesql here獲取更多信息。

相關問題