视图用到的表更新表结构时注意刷新视图

工作中,用到视图 如: select  *  from  A  UNION ALL  SELECT  *  FROM  B

然后某天 A,B 表结构增加了一个字段

再然后,前端调用竟然不出增加的字段

1. 使用SELECT * 的视图不会自动增加你增加的字段,一样要刷新视图。所以使用Select  * 不算是一个好的选择

2. 要重新更新一下视图,否则新添加的Tags字段将不会出现在视图中 

3.可以Alter view 视图,也可以 exec sp_refreshview 视图

另外 :在园子里找到下面的博文,在这里做个记录备忘

刷新SqlServer所有视图元数据的存储过程

原文链接http://www.cnblogs.com/yashen/archive/2004/12/23/81000.html

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 

转载于:https://www.cnblogs.com/manjun/p/10612855.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值