您的位置:首页 > 数据库

SQL SERVER 中对当前库中的所有视图进行刷新的存储过程

2011-11-08 15:49 686 查看
在sqlserver应用中,有时修改了某些字段或者增加了字段需要对对应的视图进行刷新。如果视图很多,会很麻烦,所以就有了以下脚本的诞生。

--对当前库中的所有视力进行刷新的存储过程

SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS OFF
GO

CREATE PROCEDURE SP_Usually AS

DECLARE @ObjectName varchar(500)
DECLARE @ExeSQL varchar(500)

DECLARE Object_Cursor CURSOR FOR
select name from sysobjects where xtype=''v'' and left(name,3)<>''syn''
and left(name,3)<>''sys'' and name<>''v_repl_articles''

OPEN Object_Cursor

FETCH NEXT FROM  Object_Cursor INTO @ObjectName
WHILE(@@FETCH_STATUS=0)

BEGIN

select @ExeSQL =''exec sp_refreshview ''+ @ObjectName
exec (@ExeSQL)

FETCH NEXT FROM  Object_Cursor INTO @ObjectName
END

CLOSE Object_Cursor
DEALLOCATE Object_Cursor

DECLARE Object_Cursor CURSOR FOR
select name from sysobjects where xtype=''p'' and left(name,3)<>''syn''
and left(name,3)<>''sys''

OPEN Object_Cursor

FETCH NEXT FROM  Object_Cursor INTO @ObjectName
WHILE(@@FETCH_STATUS=0)

BEGIN

select @ExeSQL =''exec sp_recompile ''+ @ObjectName
exec (@ExeSQL)

FETCH NEXT FROM  Object_Cursor INTO @ObjectName
END

CLOSE Object_Cursor
DEALLOCATE Object_Cursor

 
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐