Este artigo na verdade escrevi para alerta sobre as instruções TRY... CATCH ( * Implementa tratamento de erros para Transact-SQL semelhante ao tratamento de exceções nas linguagens Microsoft Visual C# e Microsoft Visual C++.Um grupo de instruções Transact-SQL pode ser incluído em um bloco TRY. Se ocorrer um erro no bloco TRY, o controle passará para outro grupo de instruções que está incluído em um bloco CATCH. ) 

 

Fica fácil de entender...

 

Versão Sql Server 2008

USE <<<SEU_BANCO>>>
 
DECLARE views_cursor CURSOR FOR SELECT name FROM sysobjects WHERE type='V'
 
OPEN views_cursor
 
DECLARE @view NVARCHAR(500)
FETCH NEXT FROM views_cursor INTO @view
WHILE @@FETCH_STATUS=0
BEGIN
 
BEGIN TRY
EXEC sp_refreshview @view
END TRY
 
BEGIN CATCH
PRINT'VIEW NAME: '+@view+
       ', ERROR NUMBER: '+Cast(ERROR_NUMBER() as VARCHAR)+
       ', ERROR MESSAGE: '+ERROR_MESSAGE()
END CATCH
 
FETCH NEXT FROM views_cursor INTO @view
END
 
CLOSE views_cursor
DEALLOCATE views_cursor

 

 
 
 
Versão Sql Server 2000
 

USE << SEU BANCO >>

DECLARE views_cursor CURSOR FOR

SELECT name FROM sysobjects WHERE type='V'

OPEN views_cursor

DECLARE @view NVARCHAR(500)

FETCH NEXT FROM views_cursor INTO @view

WHILE @@FETCH_STATUS=0

BEGIN

print @view

EXEC sp_refreshview@view

FETCH NEXT FROM views_cursor INTO @view

END

CLOSE views_cursor

DEALLOCATE views_cursor

 
 
* https://msdn.microsoft.com/pt-br/library/ms175976(v=sql.120).aspx