我们在 SQL Server 2012 中的一个数据库(数据库 A)即将停用。我正在分析使用数据库 A 作为数据源的数据库 B 中的所有视图和 StoredProcs。如何编写查询来检索此信息。谢谢
问问题
256 次
2 回答
2
我使用以下内容在 SQL Server 2008 中获取对象及其依赖项:
select *
from (select referenced_database_name, o.name as ViewName, ed.referenced_entity_name as TableName
from sys.sql_expression_dependencies ed join
sys.objects o
on ed.referencing_id = o.object_id
where referenced_database_name is not null
) vdep
您可以添加过滤器来过滤掉您感兴趣或不感兴趣的数据库:
where referenced_database_name = 'A'
于 2013-04-03T15:38:18.320 回答
0
一个非常简单的方法是只查询过程文本
select p.name
from sys.procedures p
inner join sys.syscomments c ON (p.object_id = c.id)
where c.text like '%database.%' or c.text like '%[database].%'
也可以进行相同的查询sys.views
。根据数据库名称和我给你的简单算法,你可能会也可能不会得到很好的结果。
我不确定 sp_depends 是否适用于数据库,但我猜你也可以查询数据库的依赖关系,我只是不知道如何。
于 2013-04-03T15:34:18.680 回答