刷新SqlServer所有视图元数据的存储过程
2015-10-28 12:46
393 查看
摘自: 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
执行存储过程:
Exec RefreshAllView
------------------------------
把以上代码做一个整合
if exists(SELECT * FROM sysobjects where ID = OBJECT_ID('RefreshAllView') and xtype='p' ) drop proc RefreshAllView go 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 go Exec RefreshAllView
相关文章推荐
- MySQL多实例-精典故障案例
- SQLit3 使用
- 数据库实验NetMusicShop(三)
- iOS-SQLite数据库使用介绍
- 数据库实验NetMusicShop(二)
- 数据库实验NetMusicShop(一)
- mysql备份脚本
- redis举例调用两种方式方式
- wget 下载Oracle的JDK
- 上传自定义水印图片到图片空间及保存数据库的方法
- Spring集成MongoDB
- 【转】sqlserver字段类型详解
- mysql优化(1) 观察服务器周期性变化
- Redis和Memcache的区别
- Loading half a billion rows into MySQL---转载
- Oracle策略相关
- mysql 2
- 修改mysql表的存储引擎
- Mysql逻辑或逻辑与混合使用
- 关于recover managed standby database finish force