如何获取所有 SQL 服务器视图名称具有 "SELECT * FROM..."

How do I get all the SQL Server views names that have "SELECT * FROM..."

为了在对基础 table 进行更改时识别高风险视图并能够执行 sp_refreshview,我想获取所有正在查询的所有视图的名称 ( *) 使用 SELECT *

来自 table 的列

例如,查找具有以下案例的视图:

SELECT *
SELECT SomeAlias.*

注意: 我知道 SELECT * 是一种不好的做法,绝对不是 recommended

我是这样做的:

SELECT DISTINCT
       o.name AS ObjectName,
       o.type_desc ObjectType,
       SUBSTRING (m.definition, PATINDEX ( '%[.][*]%' , m.definition )-4, 20) MatchedPattern
  FROM sys.sql_modules m
       INNER JOIN
       sys.objects o
         ON m.object_id = o.object_id
 WHERE  m.definition Like '%[.][*]%'
 AND o.type_desc  IN ('VIEW')