使用存储过程刷新所有视图sp_refreshview刷新多个视图

问题:表添加字段后相关视图错位

--定义视图名称和异常视图名称变量

DECLARE @strRefreshViewName NVARCHAR(4000), @streErorView NVARCHAR(4000)

--定义获取所有视图名称的游标

DECLARE cursorViewName CURSOR local

FOR
    SELECT   name 
    FROM    sysobjects
    WHERE   xtype = 'V' 
            AND status > = 0

SET @streErorView='';

---打开游标
OPEN cursorViewName
---循环处理每行游标数据获取视图名称,并执行系统刷新视图储存过程刷新视图。如果出错就打印错误信息。
FETCH cursorViewName INTO @strRefreshViewName
WHILE @@fetch_status = 0 
    BEGIN 
        BEGIN TRY 
            exec sp_refreshview @strRefreshViewName ;        
        END TRY
        BEGIN CATCH--异常
            SET @streErorView=@streErorView+@strRefreshViewName;
            PRINT ( ERROR_MESSAGE() ) ;
        END CATCH
        FETCH cursorViewName INTO @strRefreshViewName
		print @strRefreshViewName;
    END
--关标游标
CLOSE cursorViewName
Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐