有什么方法可以搜索具有特定值的列,我试图通过数据库中的所有表查找?例如我有
SELECT t.name AS table_name,
SCHEMA_NAME(schema_id) AS schema_name,
c.name AS column_name
FROM sys.tables AS t
INNER JOIN sys.columns c ON t.OBJECT_ID = c.OBJECT_ID
WHERE c.name LIKE '%VersionID%'
ORDER BY schema_name, table_name;
我从搜索中找到的。它为我提供了“versionID”列存在的表名,但我如何搜索以返回例如该列值为“35”的表名。
提前致谢,
我很抱歉,也许我的要求并不清楚。也许这不能在 SQL 中完成,因为我没有通过我的研究发现任何东西。但让我澄清一下。
运行此脚本
SELECT t.name AS table_name,
SCHEMA_NAME(schema_id) AS schema_name,
c.name AS column_name
FROM sys.tables AS t
INNER JOIN sys.columns c ON t.OBJECT_ID = c.OBJECT_ID
WHERE c.name LIKE '%factor%'
--and table_name in (Select name from sysobjects where ratingVersionID = 35)
ORDER BY schema_name, table_name;
将返回此例如:
但是假设“AutoAge_Factor”表中的“因子”列没有任何与“35”匹配的记录。我怎样才能从返回的结果中消除该表。但我真的更喜欢这样的结果格式,因为我想将此返回用作循环并在循环中执行一些其他操作。
再次感谢!