据我所知,有成熟的三方插件,可以简单地检测和修复数据库开发过程中经常出现的无效对象。通过单击几下即可搜索无法编译或执行的对象,并生成有效的脚本来管理它们。如果你感兴趣的话,可以自行搜索以一下。
如果答案是正确的解决方案,请点击“接受答案”并投赞成票。如果您对此答案有其他疑问,请点击“评论”。
起因:曾使用“导出数据层应用程序”遇到类似问题,由于视图中的表名不存在导致失败并报错。当时没有截图记录,根据报错提示删除了视图才得以成功运行。
现象:这是我在编辑提问时做的报错简单复现,并非起因中的报错。如图所示,视图引用的表被删除后,再查询视图会提示:“对象名'X'无效”。且存储过程也有相同现象,函数没有测试,推测也有相同表现,因此在标题中带了函数描述。
现在回想起来突然有个想法:在导出等操作之前主动做一次检查并以清单形式列出,而非导出等功能在检查架构时一个一个的以报错形式提示出来。
我的解决思路:依赖一些dmv来搜集所有存储过程、函数、视图所记录的依赖表,然后再依次检查这些表是否还存在。这是我在想解决它时首先想到的方式,还没有去做,想知道是否还有其它更加简易或者已实现好的方式。
最后,谢谢你的阅读,期待你的帮助。