有没有办法知道任何视图是否正在引用某个特定的表.我使用下面的代码,它只给出SP和函数名称:
select * from sys.objects p inner join sys.sql_modules m
on p.object_id = m.object_id
where m.definition like '%abc%'
Run Code Online (Sandbox Code Playgroud)
请帮忙!!!
Der*_*omm 11
select *
from INFORMATION_SCHEMA.VIEWS
where VIEW_DEFINITION like '%abc%'
Run Code Online (Sandbox Code Playgroud)
首先,您的查询在结果集中给出了视图(我在AdentureWorks2012上尝试了它 - > Production.Product表):

如果您使用的是SQL Server 2008或更高版本,则可以使用sys.sql_expression_dependencies目录视图.例如:
SELECT
referencing_object_name = o.name,
referencing_object_type_desc = o.type_desc,
referenced_object_name = referenced_entity_name,
referenced_object_type_desc = o1.type_desc
FROM sys.sql_expression_dependencies sed
INNER JOIN sys.objects o
ON sed.referencing_id = o.[object_id]
LEFT OUTER JOIN sys.objects o1
ON sed.referenced_id = o1.[object_id]
WHERE referenced_entity_name = 'YourTable'
Run Code Online (Sandbox Code Playgroud)
它将为您提供关于用户定义实体的每个按名称依赖关系的详细信息
对于列级依赖项,可以使用sys.dm_sql_referenced_entities函数
希望这可以帮助
| 归档时间: |
|
| 查看次数: |
9890 次 |
| 最近记录: |