我目前正在使用以下代码在我的数据库中搜索具有特定子字符串的所有列名。
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
,但我不确定是否可能。将多个表名称连接到另一个表的正确方法是什么?