首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >sp_refreshview与sp_recompile的区别

sp_refreshview与sp_recompile的区别
EN

Stack Overflow用户
提问于 2017-06-16 19:12:22
回答 2查看 773关注 0票数 0

这两个命令有什么不同?

刷新视图仅适用于视图,而重新编译仅适用于存储过程?或者还有其他一些不同?

EN

回答 2

Stack Overflow用户

发布于 2017-06-16 19:15:28

您应该使用sp_refreshview。sp_recompile仅适用于触发器和存储过程。

票数 1
EN

Stack Overflow用户

发布于 2021-12-19 02:13:54

这两个系统过程都可以在视图或表上使用。然而,它们做的是非常不同的事情。

sp_refreshview 'MyView'会刷新视图的元数据。这意味着对基表所做的任何DDL更改(例如ALTER)都将反映在视图中。这对于使用select *的视图尤其重要。

sp_recompile 'MyView'会重新编译引用视图的所有过程、触发器和函数,并获得新的查询计划。它不会更新视图的元数据:如果视图的基表已经更改,那么元数据仍然是不正确的。

您可以在此fiddle中看到区别。请注意,只有在执行sp_refreshview之后,才会显示新列。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44587854

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档