如何检查视图、函数、存储过程中已缺失的对象

博雄 胡 505 信誉分
2024-04-03T03:38:23.98+00:00

User's image

起因:曾使用“导出数据层应用程序”遇到类似问题,由于视图中的表名不存在导致失败并报错。当时没有截图记录,根据报错提示删除了视图才得以成功运行。

现象:这是我在编辑提问时做的报错简单复现,并非起因中的报错。如图所示,视图引用的表被删除后,再查询视图会提示:“对象名'X'无效”。且存储过程也有相同现象,函数没有测试,推测也有相同表现,因此在标题中带了函数描述。

现在回想起来突然有个想法:在导出等操作之前主动做一次检查并以清单形式列出,而非导出等功能在检查架构时一个一个的以报错形式提示出来

我的解决思路:依赖一些dmv来搜集所有存储过程、函数、视图所记录的依赖表,然后再依次检查这些表是否还存在。这是我在想解决它时首先想到的方式,还没有去做,想知道是否还有其它更加简易或者已实现好的方式。

最后,谢谢你的阅读,期待你的帮助。

SQL Server
SQL Server
Microsoft 关系数据库管理和分析系统的一个系列,用于实现电子商务、业务线和数据仓库解决方案。
167 个问题
{count} 票

接受的答案
  1. LiHongMSFT-4306 28,121 信誉分
    2024-04-03T06:54:35.9166667+00:00

    据我所知,有成熟的三方插件,可以简单地检测和修复数据库开发过程中经常出现的无效对象。通过单击几下即可搜索无法编译或执行的对象,并生成有效的脚本来管理它们。如果你感兴趣的话,可以自行搜索以一下。


    如果答案是正确的解决方案,请点击“接受答案”并投赞成票。如果您对此答案有其他疑问,请点击“评论”。


0 个其他答案

排序依据: 非常有帮助

你的答案

问题作者可以将答案标记为“接受的答案”,这有助于用户了解已解决作者问题的答案。