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

工作中,用到视图 如: 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 

posted @   dgdyq  阅读(347)  评论(1编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示