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

在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




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值