sql - 更新 sql View 时出现问题

标签 sql sql-server sql-view

我的 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/

相关文章:

tsql - SQL View - 没有变量?

java - 如何在 Derby 中创建缺失的数据库 View ?

sql - 使用数据定义语言删除列和所有依赖对象

sql - ORA-01843 : not a valid month with data type conversion

c# - C#中的线程安全数据库访问

c# - 根据 db 值在中继器中动态更改标签前景色

sql - 在多行上插入单个序列值

mysql - joomla慢查询日志

sql - 链接服务器登录失败

sql - PostgreSQL 中的 TRIGGER ON VIEW 不会触发