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

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

更新字段问题

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

刷新视图问题

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

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

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

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

时间: 2024-10-03 14:46:13

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

你是否也忘了刷新视图?

原文:你是否也忘了刷新视图? 起因: 由于工作原因,我隔几天就要执行一批开发人员提供过来的脚本,部分是新需求的开发,部分是修复bug.往往包含有几百个.我用工具批量执行之后,系统继续运行,后来反反复复会有这样那样的错误,其中一个,经过开发人员的检查,是因为视图没刷新. 对此我纳闷了很久,视图不就是一堆select语句吗?怎么还要刷新?难道表改了不会跟着改?为此,我首先自己做一个实验,发现的确不会马上改过来,至于啥时候才更改,也不清楚,听说从2000的时候,这个问题已经存在,看来我孤陋寡闻了. 测

5.3刷新视图

在创建视图时,sql server会保存元数据信息,用于描述视图.列.安全.依赖等信息:基础对象中的架构更改不影响视图的元数据:更改架构后使用sp_refreshview存储过程刷新视图是一个好习惯,这样对架构的更改就会反映在视图中. 为了掩饰架构改变后,不刷新视图元数据会发生什么情况,运行下面的代码创建表T1和视图V1 use tempdb; go if OBJECT_ID ('dbo.v1') is not null drop view dbo.v1; if OBJECT_ID('dbo.T

yui--datatable 更新table数据

更新datasource中_oData数据 var myTable = Map.realYUIDataTable; var recordsSet = myTable.getRecordSet(); var records = recordsSet.getRecords(); for(var i=0; i<results.length; i++){ vehicleid = results[i].VEHICLEID; speed = results[i].SPEED; gpsTime = resul

IOS如何刷新视图上的显示内容

大家都知道,UItableView 有个 reloadData的方法,可以tableview刷新视图.而普通的View上面.我们如何刷新视图的呢? 下图是我做的一个用户登录之后显示用户昵称和个性签名还有头像的界面.当用户登录之后跳转到这个页面,然后显示用户的简单信息.点击退出登录后信息也随之消失. 我的方法是,在视图将要出现的时候“-(void)viewWillAppear:(BOOL)animated” 再调用  “ [self.view addSubview:headimg];”这个方法.然

更新小红伞antivirus失败:生成更新结构失败。更新库生成错误 556

http://blog.csdn.net/pipisorry/article/details/45721521 更新小红伞antivirus失败 生成更新结构失败.更新库生成错误 556 15:14:34 [UPDLIB] [ERROR]   文件 C:\ProgramData\Avira\AntiVir Desktop\TEMP\UPDATE\antivirus\15.0.9.504\win\zh-cn\libeay32.dll.gz 的 MD5 与 info 文件中指定的 MD5 不同 15

Win10累积更新KB3081424安装失败的解决方法

我在个人的PC上多次更新KB3081424都失败了,后来按照网上给出的删除注册表残留项的方法后更新成功了(删除注册表残留项后我还执行了从微软帐户切换到本地帐户的操作,有兴趣的朋友可以试试不切换能否更新成功). 下面我给出整理后的解决方案: 1. 手动下载安装更新 Windows 10 KB3081424补丁 微软官方下载链接 msu 64位:http://download.windowsupdate.com/d/msdownload/update/software/crup/2015/08/wi

MSSQL之八 实现视图与索引

数据库开发人员经常需要提高查询的性能.SQL Server 2008允许实现索引来减少查询的执行时间.而且,你可以通过实现视图对不同用户限制数据的浏览 本章讨论如何创建和管理索引和视图.它也讨论如何实现全文索引以提高数据索引. 重点 ?  创建和管理视图 ?  创建和管理索引 预习功课 ?        创建视图的格式以及注意事项 ?        创建索引的格式以及注意事项 视图 视图是一个虚表,是从一个或者多个表或视图中导出的表,其结构和数据是建立在对表的查询基础上的. 使用视图的优点和作用

win2012R2安装net4.6.2失败提示“更新2919355包问题,或者win8.1、win10”的错误

前言 在客户的服务器电脑安装net4.6,提示安装失败错误,最后顺利成功安装net4.6. 一.错误 1.win2012R2安装net4.6.2失败提示“更新2919355包问题,或者win8.1.win10”的错误. 二.解决方法 1.先在官方下载更新安装包,地址:https://www.microsoft.com/en-us/download/details.aspx?id=42334 2.安装更新包,必须按顺序来安装先安装Windows8.1-KB2919442-x64.msu,再运行cl

mysql更新大字段

<input id="btn_sealchange" type="button" value="更改印章" class="btn btn-info" onclick="selectSeal(${seal.sealImageId});"> <input id="sealinfo" name="file" type="file" on