如何解决由于依赖性不足,无法删除视图
当删除未使用的对象时,我正在跟踪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
足够有趣的是,vwEmployeeCompleteall
与vwTeamsLatest
无关。
最初,我手动遍历了两次对象图,以验证我没有在一定级别的级联中忽略它,然后使用Apexsql Analyzer对其进行了仔细检查。从两种角度来看,两个文件都不依赖于另一个文件。
此后,我对vwTeamsLatest
进行了全文搜索,它没有出现在任何使用的视图,过程或函数中。
我错误地解释了此错误消息,而vwEmployeeCompleteall不是去挖掘的正确地方吗?
正在使用的系统是sql Server 2017
解决方法
睡个好觉使我能够与其他人保持距离并重新思考自己的方法。
当然,如果依赖项为var start = Date.now();
// do something
var took = Date.now() - start;
,则可能是造成此问题的原因。如果该视图没有其他依赖于它的对象,则可以删除它。
罪魁祸首是一位同事,他将使用该过时的视图的功能更新为新视图,但忘记了在升级脚本中更新此标量函数。因此源文件和实际数据库不在哪里同步。更新功能后,迁移将顺利进行。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。