MSSQL 刷新全数据库视图 脚本
来源:互联网 发布:win10对游戏的优化 编辑:程序博客网 时间:2024/06/05 17:41
/****** Object: StoredProcedure SYS_REFRESHVIEW Script Date: 12/17/2012 10:32:46 ******/IF EXISTS ( SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'SYS_REFRESHVIEW') AND type IN ( N'P', N'PC' ) ) DROP PROCEDURE SYS_REFRESHVIEWGO/* 刷新数据库视图.sql*/CREATE PROCEDURE SYS_REFRESHVIEWAS BEGIN DECLARE @vName SYSNAME DECLARE refresh_cursor CURSOR FOR SELECT Name FROM sysobjects WHERE xtype = 'V' ORDER BY crdate FOR READ ONLY OPEN refresh_cursor FETCH NEXT FROM refresh_cursor INTO @vName WHILE @@FETCH_STATUS = 0 BEGIN--刷新指定视图的元数据。由于视图所依赖的基础对象的更改,视图的持久元数据会过期。 BEGIN TRY EXEC sp_refreshview @vName --PRINT '视图' + @vName + '已更新' FETCH NEXT FROM refresh_cursor INTO @vName END TRY BEGIN CATCH PRINT '视图' + @vName + '异常:' + ERROR_MESSAGE() ROLLBACK FETCH NEXT FROM refresh_cursor INTO @vName END CATCH END CLOSE refresh_cursor DEALLOCATE refresh_cursorEND GO