首页 > 代码库 > SQL Server修改表结构后批量更新所有视图
SQL Server修改表结构后批量更新所有视图
最近修改了数据库表结构,数据同步的时候出了问题,发现很多数据明明已经修改,但是通过视图筛选出来的还是原来的数据,所以怀疑应该是视图缓存了数据,在园子里找到下面的博文,在这里做个记录备忘。
原文链接:http://www.cnblogs.com/yashen/archive/2004/12/23/81000.html
我们在使用SqlServer时经常遇到这种情况,当修改某个表的结构后,相关的视图就不对了而导致程序错误,因此就有个下面这个存储过程。
CREATE PROCEDURE RefreshAllView AS DECLARE MyCursor CURSOR FOR select Name from dbo.sysobjects where OBJECTPROPERTY(id, N ‘IsView‘ ) = 1 and ( not name in ( ‘sysconstraints‘ , ‘syssegments‘ )) DECLARE @ name varchar (40) OPEN MyCursor FETCH NEXT FROM MyCursor INTO @ name WHILE (@@fetch_status <> -1) BEGIN IF (@@fetch_status <> -2) begin exec sp_refreshview @ name end FETCH NEXT FROM MyCursor INTO @ name END CLOSE MyCursor DEALLOCATE MyCursor |
SQL Server修改表结构后批量更新所有视图
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。