DECLARE @_Id INT, @_Name NVARCHAR(256), @_ExecSql NVARCHAR(MAX);
DECLARE RefreshViewCursor CURSOR FOR
SELECT object_id, name
FROM sys.views
WHERE OBJECT_DEFINITION(object_id) LIKE N'%*%'
ORDER BY name;
OPEN RefreshViewCursor;
WHILE 1 = 1
BEGIN
FETCH NEXT FROM RefreshViewCursor
INTO @_Id,
@_Name;
IF @@FETCH_STATUS <> 0
BEGIN
BREAK;
END;
-- Execute
PRINT @_Name;
SET @_ExecSql = 'EXEC sys.sp_refreshview ' + @_Name;
EXECUTE (@_ExecSql);
END;
CLOSE RefreshViewCursor;
DEALLOCATE RefreshViewCursor;