如何获取所有 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')
为了在对基础 table 进行更改时识别高风险视图并能够执行 sp_refreshview
,我想获取所有正在查询的所有视图的名称 ( *) 使用 SELECT *
例如,查找具有以下案例的视图:
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')