刷新所有視圖存儲過程

Create PROCEDURE [dbo].[sp_RefreshAllView]
AS

--刷新所有視圖
DECLARE @ViewName VARCHAR(MAX);
DECLARE @i INT;
SET @i = 0;
DECLARE #_cursor CURSOR
FOR
SELECT name
FROM sysobjects
WHERE type = 'V';

OPEN #_cursor;

FETCH NEXT FROM #_cursor INTO @ViewName;

WHILE @@fetch_status = 0
BEGIN


begin try

EXEC sp_refreshview @ViewName;
PRINT '成功刷新視圖: ' + @ViewName;
SET @i = @i + 1;
end try


begin catch
print '##刷新視圖失敗:'+@ViewName
print ' 失敗原因:'+ERROR_MESSAGE()
rollback tran
end catch

FETCH NEXT FROM #_cursor INTO @ViewName;
END;

CLOSE #_cursor;
DEALLOCATE #_cursor;
PRINT '刷新視圖完成';
PRINT '共成功刷新' + CONVERT(VARCHAR(10), @i) + '個視圖';

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章