我有一个包含数千个对象的巨大遗留数据库。我真的想删除 113 个表,但我需要获得一份完整的依赖项列表,这些依赖项也需要修改或删除。有什么办法吗? SSMS 中的“查看依赖项”UI 将花费太长时间。我想的是将 113 个表的名称放在一个表中,然后将其与 sql_expression_dependencies 连接起来以获取所有依赖项,然后递归直到找到所有依赖项。这似乎工作得很好,但它似乎没有返回依赖于我的表的表的名称。它只返回 SP、FUNCTION 等。知道如何扩充它以包括所有依赖类型吗?
最佳答案
识别单个 SQL Server 数据库中的所有“相关”对象——表、 View 、过程、函数等。阿尔。 (触发器、同义词,甚至更晦涩的对象)是一件非常困难的事情(如果您使用动态 SQL,则几乎不可能)。我见过的最好的解决方案是第三方实用程序,它们遍历数据库,我不得不想象,通过解析和检查一切来暴力解决问题。
我在 SQL 7.0/2000 时代使用了一个非常令人印象深刻的工具(我记得是“SQL Cast”),但可惜它似乎不再存在了。 RedGate 目前有这样的工具,SQL Dependency Tracker , 但我没用过。
关于sql-server-2008 - 用于获取 SQL 对象上所有 SQL 依赖项的 SQL 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3367876/