(MSSQL)sp_refreshview刷新视图失败及更新Table字段失败的问题解决

Posted Vulper

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(MSSQL)sp_refreshview刷新视图失败及更新Table字段失败的问题解决相关的知识,希望对你有一定的参考价值。

在近期工作中遇到一个任务,需要批量更改散布在很多Table中的某字段,同时刷新相关视图,但是在执行脚本时,发现了如下问题

更新字段问题

消息 5074,级别 16,状态 1,第 1 行
对象\'View_Simple\' 依赖于 列\'Name\'。
消息 4922,级别 16,状态 9,第 1 行
由于一个或多个对象访问此列,ALTER TABLE ALTER COLUMN Name 失败。

刷新视图问题

消息 15165,级别 16,状态 1,过程 sp_refreshsqlmodule_internal,第 55 行
找不到对象 \'View_Simple\',或者您没有所需的权限。

经在网上查找问题相关信息,最终在Stack Overflow发现了同样的问题,在最高赞回答中找到了答案,原因是这个视图架构绑定到了这个表,导致了以上问题,具体细节可百度搜索架构绑定。

但是,因为这个视图创建了索引,且架构绑定是索引所必须的,所以我这里放弃了更改,暂时没有验证重新创建不架构绑定的该视图可以解决以上问题,有兴趣或条件合适的朋友可以尝试一下,可以回复本帖。

 

注:另外导致视图无法刷新的原因可能是MSSQL2008的一个bug,解决方法可以参照这篇文章

 

以上是关于(MSSQL)sp_refreshview刷新视图失败及更新Table字段失败的问题解决的主要内容,如果未能解决你的问题,请参考以下文章

使用sp_refreshview刷新视图

Azure Synapse 专用 SQL 池中的“sp_refreshview”是不是有任何等效项

使用 php 连接到 MSSQL 数据库视图

MSSQL -- 使用 PK 创建视图

Mssql Server 到 MySql 之间的迁移视图

MSSQL:C# 函数可以实现视图吗?