データベース内のすべてのテーブルから見つけようとしている特定の値を持つ列を検索する方法はありますか? たとえば、私は
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」テーブルの「factor」列には、「35」に一致するレコードがありません。そのテーブルが結果に返されないようにするにはどうすればよいですか。しかし、この戻り値をループとして使用し、ループ内で他のことをしたいので、結果の形式をこのようにすることを本当に好みます。
再度、感謝します!