sql-server – SQL Server 2008 – sp_refreshview在一些视图中
我继承了一个相当实质的项目,它广泛使用SQL Server(2005和2008)视图.
构建过程的一个步骤是调用sp_refreshviews系统存储过程,以确保任何表中的更改都不会破坏我们的视图.这工作很好….除了大约三四个(200个)视图…. 与那些,它只是炸弹 – 给出奇怪的错误信息,如
这是错误的 – 那个视图确实存在,我绝对可以从中选择. 我似乎没有找到任何关于为什么会这样的简明扼要的信息,什么触发它…任何想法?有什么可以做的来检测这些有问题的观点吗?我可以改变他们的定义,以便他们再次刷新吗? 更新:我记录了Microsoft Connect的错误报告 – 如果您同意这似乎很奇怪,需要修正,请投票! https://connect.microsoft.com/SQLServer/feedback/details/676728/sp-refreshview-crashes-with-misleading-error-on-views-with-schemabinding 解决方法我注意到你提到的评论有SCHEMABINDING.我几乎可以保证这是问题. Books online具体说,这是用于非模式绑定视图.方案绑定的视图不会允许发生中断更改,因此更新元数据是不必要的.你可以安全地跳过它. 您可以识别所有的schemabound视图,如下所示: SELECT * FROM sys.views WHERE OBJECTPROPERTY(object_id,'IsSchemaBound')=1 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |