11,849
社区成员
发帖
与我相关
我的任务
分享
DECLARE @I INT,@CNT INT,@VIEWNAME SYSNAME,@J INT
DECLARE @VIEWDICT TABLE(RID INT IDENTITY(1,1),VIEWNAME SYSNAME)
DECLARE @ERRORINFO TABLE(RID INT IDENTITY(1,1),VIEWNAME SYSNAME,INFO VARCHAR(2000))
INSERT INTO @VIEWDICT
SELECT [name] FROM sys.objects where [type]='V' ORDER BY [name]
SET @I=1
SELECT @I=1,@CNT=COUNT(*) FROM @VIEWDICT
WHILE @I<=@CNT
BEGIN
SELECT @VIEWNAME=VIEWNAME FROM @VIEWDICT WHERE RID=@I
BEGIN TRY
EXEC ('SP_REFRESHVIEW ['+@VIEWNAME+']')
END TRY
BEGIN CATCH
INSERT INTO @ERRORINFO(VIEWNAME,INFO)
SELECT @VIEWNAME,ERROR_MESSAGE()
END CATCH
SET @I=@I+1
END