我在大量服务器/数据库中有大约500个表,我需要编写一个脚本来识别依赖项。基本上这些表正在经历字段大小等的变化,我们想要识别是否有任何其他对象 - 存储过程,函数,视图等可以引用它们。此列表不是最终的,也可能会增长。 我找到了以下两种查找依赖关系的方法:
--Method 1:
sp_depends 'Your_tableName'
GO
-- Method 2:Using DMV sys.dm_sql_referencing_entities
SELECT referencing_schema_name, referencing_entity_name,
referencing_id, referencing_class_desc, is_caller_dependent
FROM sys.dm_sql_referencing_entities ('Your_tableName', 'OBJECT');
GO
我的问题是实现这一目标的最佳方法是什么? 在哪里放置该列表,以便我可以使用while循环读取所有表列表并列出依赖项? 我无法在生产数据库上为正在更改的表名创建SQL表,以便我可以在WHILE循环中读取。 此外,我只能访问SSMS。 请指教!
P.S。如果有办法检查链接服务器的依赖关系,请告诉我
答案 0 :(得分:-1)
我之前遇到过同样的问题。上面的第二种方法可能更好,但要注意它从内置的系统视图中提取了一些关系数据,这些数据可能有缓存的数据,所以如果你不认真的话,请与你的dba管理员合作# 39; s返回最近的更改。如果我找到用于此目的的脚本,我会更新帖子。