-- 刷新全部视图 IF NOT EXISTS(SELECT * FROM [DBO].SYSOBJECTS WHERE ID=OBJECT_ID('[DBO].[sp_RefreshAllView]') AND TYPE='P') BEGIN EXEC(' CREATE PROCEDURE [DBO].[sp_RefreshAllView] AS BEGIN DECLARE C_View CURSOR FOR SELECT DISTINCT [s].[name] + ''.'' + [o].[name] AS [ViewName] FROM SYS.OBJECTS [o] JOIN SYS.SCHEMAS [s] ON [o].[schema_id]=[s].[schema_id] WHERE [o].[type]=''V'' AND OBJECTPROPERTY([o].[object_id], ''IsSchemaBound'')<>1 AND OBJECTPROPERTY([o].[object_id], ''IsMsShipped'')<>1; DECLARE @view VARCHAR(60); OPEN C_View; FETCH NEXT FROM C_View INTO @view; WHILE @@fetch_status=0 BEGIN IF EXISTS(SELECT TABLE_SCHEMA + ''.'' + TABLE_NAME FROM INFORMATION_SCHEMA.VIEWS WHERE TABLE_SCHEMA + ''.'' + TABLE_NAME=@view) EXEC SP_REFRESHVIEW @view; FETCH NEXT FROM C_View INTO @view; END; CLOSE C_View; DEALLOCATE C_View; END; ') END; GO EXEC sp_RefreshAllView; GO
原文地址:https://www.cnblogs.com/hcbin/p/14158048.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。