我的 sql View 有问题。我的实际观点包含多个连接,但出于我的问题的目的,我将用较小的示例来演示该问题。
说我有观点......
create view A
as
select Id as IdC
from tableA
go
create view B
as
select b.Id,
b.Name,
a.*
from tableB b
inner join A a on a.Id = b.Id
go
所以一切都很好。然后我将 View A 更改为读取...
alter view A
as
select Id as IdColumn
from tableA
go
所以现在如果我写...
select * from A
它返回列IdColumn
但是,如果我写...
select * from B
它返回 View A 中的原始 IdC
列名称
我尝试了sp_refreshview
,但这没有帮助。
如何让 View B 从 View A 返回更新后的列名称?
更新**
好吧,我搞砸了原来的问题。我感谢大家的回复。我打算在 View B中将 View A连接到表B。看来 View B上的alter语句解决了这个问题。
最佳答案
正如我所看到的,您查询的是表A而不是 View A
select b.Id,
b.Name,
a.*
from tableB b
inner join tableA a on a.Id = b.Id
因此修改上述查询将解决您的问题
View B 的修改查询
select b.Id,
b.Name,
a.*
from tableB b
inner join A a on a.IdColumn = b.Id
关于sql - 更新 sql View 时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6623762/