这个好东西我都找了好久了,呵呵,懒啊,人越来越懒了,^_^
2006-02-21 00:16
351 查看
一般来说,在修改表的结构之后,与些表对应的视图也应该重建,以适应新表结构的变化。因此,在DBMS中应该提供重建视图的相关命令。在Oracle中提供了这样的procedure,一些oralce的三方工具,如Toad、Rapid Sql等都提供了对应的工具直接执行重建视图的命令,但是在Sql server中却没有提供。
查了一下sql server的帮助,发现有这样一个过程:
sp_refreshview
刷新指定视图的元数据。由于视图所依赖的基础对象的更改,视图的持久元数据会过期。
因此,我们可以自己建一个过程来实现重建所有视图,如下:
create procedure RefreshAllView
as
declare @ViewName varchar(250)
declare #views cursor for select name from sysobjects
where objectproperty(id,N'IsView')=1 and uid=1 order by name
open #views
fetch next from #views into @viewname
while @@fetch_status=0
begin
print '正在更新: '+@viewname
exec sp_refreshview @viewname --更新视图
fetch next from #views into @viewname
end
close #views
deallocate #views
go
--调用:
exec RefreshAllView
此过程不仅可以解决重建所有视图的问题,还可以通过重建,发现系统中某些视图的语法错误。
查了一下sql server的帮助,发现有这样一个过程:
sp_refreshview
刷新指定视图的元数据。由于视图所依赖的基础对象的更改,视图的持久元数据会过期。
因此,我们可以自己建一个过程来实现重建所有视图,如下:
create procedure RefreshAllView
as
declare @ViewName varchar(250)
declare #views cursor for select name from sysobjects
where objectproperty(id,N'IsView')=1 and uid=1 order by name
open #views
fetch next from #views into @viewname
while @@fetch_status=0
begin
print '正在更新: '+@viewname
exec sp_refreshview @viewname --更新视图
fetch next from #views into @viewname
end
close #views
deallocate #views
go
--调用:
exec RefreshAllView
此过程不仅可以解决重建所有视图的问题,还可以通过重建,发现系统中某些视图的语法错误。
相关文章推荐
- 这个Blog申请好久了,第一次写东西,呵呵
- 偶然发现raudus这个好东西
- 好久没有关心这个Blog了,现在变样了.
- 兵马俑上我的文章(好久没来这个版(love版)逛了。想来看看。)
- CSDN:这个Blog是好了还是越来越坏了?
- 呵呵,汗呀。原来我的JAVA还很糟糕。要到这个水平才算熟悉。
- 这个问题,正在郁闷中,网上找了好久,也只见问不见答!
- 末日之际 游戏开发 1st ——以前做这个游戏好久了
- 这个好玩,呵呵
- 关于MFC中的LoadFrame函数(这个函数困扰了我好久啊 )
- 利用java实现发送邮件(这个亲测可用,找了好久)
- 好久不写blog了,重新捡起这个东东吧
- 老太太 原创漫画o(∩_∩)o... 这个版权所有了呵呵
- 回复草儿:呵呵~~嗯在firefox下的展示还不是特别好,有些页面显示不了。叫这个名字的人好像很多哦...
- 呵呵,终于解决这个问题了
- 这个捕鱼游戏制作的真心不错,原创音乐,AV动作,让人流连忘返啊呵呵
- 貌似这个博客有个Bug~~呵呵。
- 好久都没有来这个我们共同交流的地方了
- EasyUI这个框架用了好久了,总结一下遇到的问题和解决方法
- Vs2003使用时出现这个问题,正在郁闷中,网上找了好久,居然看到同样问题,马上拷贝来:)开心中