表结构改动后视图问题
来源:互联网 发布:阿里云服务器搭建ecs 编辑:程序博客网 时间:2024/05/17 21:44
相信大家也都遇到过,当修改了表结构后,与之相关的视图就会有问题,这是因为我们没有刷新视图的缘故,为什么表结构变化后要刷新视图?,分享一下解决此类问题的方法:
1.重新修改相关视图,将Alter脚本重新执行即可,不需要改动代码。
2.执行sp_refreshview命令,刷新视图依赖。重点介绍一上这种方法。
(1)sp_refreshview 视图名 --刷新单个视图
(2)刷新所有视图
--刷新所有视图
declare @ViewName varchar(250)
declare @i int
set @i=0
declare #_cursor cursor for
select name from sysobjects where type='V'
open #_cursor
fetch next from #_cursor into @viewname
while @@fetch_status=0
begin
print '成功刷新视图: '+ @viewname
exec sp_refreshview @viewname
set @i= @i +1
fetch next from #_cursor into @viewname
end
close #_cursor
deallocate #_cursor
print '完成'
print '共成功刷新' + convert(varchar(10),@i) + '个视图'
(3)刷新与表table1相关的所有视图
--引自msdn
USE AdventureWorks;
GO
SELECT DISTINCT 'EXEC sp_refreshview ''' + name + ''''
FROM sys.objects so INNER JOIN sys.sql_dependencies sd
ON so.object_id = sd.object_id
WHERE type = 'V'
AND sd.referenced_major_id = object_id('table1')
以上三种方法,个人更加推荐第三种,但每三种目前的方法只能把与表相关的视图都找出来,怎么执行?请高手补充,如果是把查询结果复制出来单个执行,效率太低。
补充:第三种方法
go
declare @sql nvarchar(max) select distinct @sql=isnull(@sql,';')+ 'EXEC sp_refreshview ''' + name + ''''
FROM sys.objects so INNER JOIN sys.sql_dependencies sd
ON so.object_id = sd.object_id
WHERE type = 'V'
AND sd.referenced_major_id = object_id('table1')
exec(@sql)
- 表结构改动后视图问题
- SQL Server修改表结构后批量更新所有视图
- SQL Server修改表结构后批量更新所有视图
- pl/sql developer 窗口改动后无法还原的问题
- 改动已经存在数据的MySQL表结构
- 导入导出数据库表结构、视图相关问题汇总
- sql server的表结构发生变化后,需要调用exec sp_refreshview 视图名来更新视图
- SQL Server修改表结构后批量更新所有视图的存储过程
- HW问题改动_PDS
- 关于shiro后台权限改动,重新登录后发现权限还是以前的问题的解决
- iOS 11后滚动视图自适应 问题
- 解决SqlServer2008修改表结构后无法保存的问题
- caffe 改动后的重新编译
- caffe 改动后的重新编译
- 解决文档/视图结构中相互调用不方便的问题
- Android ListView加载头视图后容易忽略的问题
- NavigationBar设置背景图片后,内容视图会下移的问题
- 解决隐藏tabbar后底部视图button不响应问题
- 一个高效率的SQL Server分页语句
- 七彩复选框
- 在一个机机上让 Microsoft SQL Server 2000 + 2005 + 2008 三个版本共存
- C#开发ActiveX控件及制作CAB包
- wince 开发CTransInPlaceFilter学习笔记《三》
- 表结构改动后视图问题
- JNDI连接数据库
- WidgetOne手机应用开发平台已正式上线
- VS2005常用插件
- 三种数据库中的时间类型函数例子
- Android 将单位dip转换为px
- 中国重回世界第一大战略举隅2
- GRUB2更改系统启动顺序的方法
- SQL Server 2008各版本区别(企业版 开发者版 标准版 Web版 工作组版 Express版 Compact版)