zoukankan      html  css  js  c++  java
  • 刷新SqlServer所有视图元数据的存储过程

    摘自: http://www.cnblogs.com/yashen/archive/2004/12/23/81000.html

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

    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

    执行存储过程:

    Exec RefreshAllView

    ------------------------------

    把以上代码做一个整合

    if exists(SELECT * FROM sysobjects where ID = OBJECT_ID('RefreshAllView') and xtype='p' ) 
        drop proc RefreshAllView
    go
    
    
    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
    
    
    
    
    go
    
    Exec RefreshAllView
  • 相关阅读:
    @codeforces
    @atcoder
    @loj
    @atcoder
    @atcoder
    @loj
    @atcoder
    @atcoder
    @atcoder
    @uoj
  • 原文地址:https://www.cnblogs.com/wuyifu/p/3636603.html
Copyright © 2011-2022 走看看