微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

由于依赖性不足,无法删除视图

如何解决由于依赖性不足,无法删除视图

删除未使用的对象时,我正在跟踪sqlCMD迁移脚本中的错误

我收到的错误如下:

Msg 208,Level 16,State 1,Server XXXXXXXXXXX\XXX_DEV,Procedure vwEmployeeCompleteall,Line 47
Invalid object name "vwTeamsLatest".

有问题的脚本如下:

USE [DatabaseName]
GO

DROP PROCEDURE IF EXISTS dbo.spPreparedischarge
DROP VIEW IF EXISTS ....
/*a handful of other views being dropped*/
DROP VIEW IF EXISTS dbo.vwTeamsLatest

足够有趣的是,vwEmployeeCompleteallvwTeamsLatest无关。 最初,我手动遍历了两次对象图,以验证我没有在一定级别的级联中忽略它,然后使用Apexsql Analyzer对其进行了仔细检查。从两种角度来看,两个文件都不依赖于另一个文件

此后,我对vwTeamsLatest进行了全文搜索,它没有出现在任何使用的视图,过程或函数中。

错误地解释了此错误消息,而vwEmployeeCompleteall不是去挖掘的正确地方吗?

正在使用的系统是sql Server 2017

解决方法

睡个好觉使我能够与其他人保持距离并重新思考自己的方法。

当然,如果依赖项为var start = Date.now(); // do something var took = Date.now() - start; ,则可能是造成此问题的原因。如果该视图没有其他依赖于它的对象,则可以删除它。

罪魁祸首是一位同事,他将使用该过时的视图的功能更新为新视图,但忘记了在升级脚本中更新此标量函数。因此源文件和实际数据库不在哪里同步。更新功能后,迁移将顺利进行。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。