gpt4 book ai didi

sql-server - 表架构更新后错误的列值 SQL Server View

转载 作者:行者123 更新时间:2023-12-04 23:59:03 25 4
gpt4 key购买 nike

我总是问自己,为什么如果在 SQL Server 上有两个表,我会创建这样的 View :

CREATE VIEW vw_MyView 
AS
SELECT T1.*, T2.ClientName FROM Table1 T1 inner join Table2 T2 on T1.ID_Client=T2.ID_Client

当我需要向表 1 添加字段时, View 显示值错位?第一列的值显示在第二列,依此类推!

这发生在我测试的每个版本的 SQL Server 上。谁能告诉我为什么会发生这种情况以及如何解决?

这种行为会带来很大的问题,特别是派生 View 。谢谢

最佳答案

更新架构后,您应该刷新依赖于架构的所有 View 的 View 元数据:

EXEC sp_refreshview @viewName

@viewName 变量保存 View 的名称。您可以在脚本中使用此存储过程,该脚本可以获取依赖于表的 View 以便动态刷新它们,或者您可以直接浏览所有 View (SELECT TABLE_NAME FROM INFORMATION_SCHEMA.VIEWS)并调用存储过程在每个 View 上。

这还有一个额外的好处,就是发现任何因架构更改而无效的 View 并标记它们,因为它们会在调用 SP 时出错。

关于sql-server - 表架构更新后错误的列值 SQL Server View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30081585/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com