sql - 如何在 SQL Server 2008 中重建 View

标签 sql sql-server tsql sql-server-2008 view

我的数据库中有一个 View ,有人用一个表中的 * 定义了该 View 。我刚刚向该表添加了一个新列,我希望 View 反射(reflect)新列。除了重新执行 View 创建脚本之外,还有其他方法重建 View 吗?我正在寻找类似于 sp_recompile 如何重新编译存储过程的东西(或者更准确地标记它以在下次调用时进行编译)。

更新:从长远来看,我尝试在 View 上调用 sp_recompile,虽然调用有效,但它没有重建 View 。

更新 2:我希望能够通过脚本执行此操作。因此,将列添加到表中的脚本也可以更新 View 。正如我所说,类似于 sp_recompile 的东西。

最佳答案

我相信您正在寻找的是

sp_refreshview [ @viewname = ] 'viewname'

Updates the metadata for the specified non-schema-bound view. Persistent metadata for a view can become outdated because of changes to the underlying objects upon which the view depends.

See Microsoft Docs

关于sql - 如何在 SQL Server 2008 中重建 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1557515/

相关文章:

sql-server - 使用聚合函数的 SQL 更新查询

sql - BigQuery子查询基于所有外部列的返回数字

MySQL-使用 MAX 查询 GROUP_CONCAT 中的加密值

.net - 加密列后 SQL 查询性能下降

sql - 当表仅包含过去几天时创建全月的 SQL View

sql-server - 使用 T-SQL,从字符串中返回第 n 个分隔元素

sql - 如果数据保持不变,有没有办法为同一个 SQL 查询获得不同的结果?

sql-server - SQL 查询列出每周的最新行

sql - 排除 SELECT 语句中的某些列

sql - 为什么 SQL 服务器插入这么慢?