如何动态地将一个表连接到SQL Server中的多个其他表?

时间:2017-01-18 21:56:39

标签: sql sql-server dynamic-sql

我目前正在使用以下代码在我的数据库中搜索具有特定子字符串的所有列名。

SELECT 
    t.name AS table_name,
    SCHEMA_NAME(schema_id) AS schema_name,
    c.name AS column_name
INTO 
    #Tables
FROM
    sys.tables AS t
INNER JOIN 
    sys.columns c ON t.OBJECT_ID = c.OBJECT_ID
WHERE 
    c.name LIKE '%foo%'
ORDER BY 
    schema_name, table_name;

我想获取此查询返回的表和列名称,并将它们中的每一个连接到另一个表,如下所示。

SELECT *
FROM #ReferenceTable rt
INNER JOIN #Tables.table_name t ON rt.ReferenceColumn = t.ColumnName

我相信这可以通过动态查询来完成,但我还没有弄清楚如何。我最初的想法是将表格传递到sp_executesql,但我不确定是否可能。将多个表名称连接到另一个表的正确方法是什么?

0 个答案:

没有答案