SQL Server检索包含某个关键字的所有列名

在项目中,有的时候会遇到一些需求,需要从一个巨大的数据库里找到所有包含某个关键字的列,以及它所在的表。下面的SQL可以快速解决这个问题。

SELECT distinct 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 '%keyword%'
ORDER BY schema_name, table_name

使用方法,只要把上面语句中keyword换成你想要的检索的关键字就可以了。

举个例子,我想知道当前的数据库里,有哪些表里带有包含了Discount的字段,结果如下所示

image


Comments

150 responses to “SQL Server检索包含某个关键字的所有列名”

Leave a Reply