MSSQL 刷新全数据库视图 脚本

/****** 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_REFRESHVIEW
GO

/*
    刷新数据库视图.sql
*/
CREATE PROCEDURE SYS_REFRESHVIEW
AS 
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_cursor
END 
GO

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值