SQL Server 2008-sp_refreshview在某些视图上被炸掉
||
我继承了一个相当大的项目,该项目大量使用了SQL Server(2005和2008)视图。
生成过程的第一步是调用ѭ0系统存储过程,以确保没有对任何表的更改破坏我们的视图。除了大约三到四个(200个以上的视图)之外,这个效果还不错。
有了这些,它就炸了-发出奇怪的错误消息,例如
讯息15165,第16级,状态1,
程序
sp_refreshsqlmodule_internal,第55行
找不到对象
\'vYourViewNameHere \',或者您没有
得到许可。
这是完全错误的-该视图确实存在,我绝对可以从中选择。
我似乎找不到任何很好的简明信息,以了解发生这种情况的原因,触发原因的原因……任何想法?我有什么办法可以发现这种有问题的观点?我可以更改其definitino,以便再次刷新它们吗?
更新:为此,我在Microsoft Connect上记录了一个错误报告-如果您同意这似乎很奇怪并且需要解决,请对其投票!
https://connect.microsoft.com/SQLServer/feedback/details/676728/sp-refreshview-crashes-with-misleading-error-on-views-with-schemabinding
没有找到相关结果
已邀请:
4 个回复
掏得透垦滩
播匣扦阔食
唯一的解决方案是手动更改视图。将此修复程序应用于上述解决方案,您将获得:
寇剩
注意:运行RThomas的相邻答案https://stackoverflow.com/a/6460532/179972中建议的查询时,我的数据库未报告具有架构绑定视图 更新-解决方案: 成功注释掉
命令后,数据库脚本成功运行(如上所示),然后我们自己运行视图刷新代码,它也成功。 - 对于它如何成功工作,这个答案对我而言没有任何意义,但是,如果对其他人有帮助,我会在此处进行记录。
舜辉