我们在使用sqlServer时经常遇到这种情况,当修改某个表的结构后,相关的视图就不对了而导致程序错误,因此就有个下面这个存储过程。
exec sp_executesql @sqlCreateView

CREATE
PROCEDURE
RefreshAllView
AS

DECLARE
MyCursor
CURSOR

FOR
select
Name
from
dbo.sysobjects
where
OBJECTPROPERTY
(id, N
'
IsView
'
)
=
1
and
(
not
name
in
(
'
sysconstraints
'
,
'
syssegments
'
))


DECLARE
@name
varchar
(
40
)

OPEN
MyCursor


FETCH
NEXT
FROM
MyCursor
INTO
@name

WHILE
(@@fetch_status
<>
-
1
)

BEGIN

IF
(@@fetch_status
<>
-
2
)

begin

exec
sp_refreshview @name

end

FETCH
NEXT
FROM
MyCursor
INTO
@name

END


CLOSE
MyCursor

DEALLOCATE
MyCursor
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。