我想知道哪个存储过程有跨数据库/链接服务器调用。
我知道我可以在数据库名称为字符串的情况下进行某种字符串搜索。其中一个例子如下所示
SELECT DISTINCT
o.name AS Object_Name,
o.type_desc
FROM sys.sql_modules m
INNER JOIN
sys.objects o
ON m.object_id = o.object_id
WHERE m.definition Like '%{{DBNAME}}%';但是如果可能的话,我不想去字符串搜索,所以有没有其他方法可以找到所有可能有跨数据库/链接服务器的过程?
发布于 2017-11-23 14:21:10
有一个系统视图sys.sql_expression_dependencies恰好提供了以下信息:
select d.*
from sys.sql_expression_dependencies d
where d.referenced_database_name is not null
and d.is_ambiguous = 0;但是,请注意,其中一些引用可能是“假的”,或者更确切地说,不是您所期望的。例如,XML方法也列在其中,这可能会造成一些混淆。
https://stackoverflow.com/questions/47448637
复制相似问题