基表为BaseTable
视图TV1/TV2为BaseTable的两个视图,TV3在TV1、TV2的基础上建立。
TV3的建立举个最简单的例子如下:CREATE VIEW TV3 AS 
SELECT * FROM TV1
UNION ALL
SELECT * FROM TV2如果修改TV1、TV2后,那么这个修改会自动在TV3体现出来么?是否会自动同步更新TV3?

解决方案 »

  1.   

    不过楼主得注意,TV1和TV2的字段顺序,不要搞混了,还要字段个数要一样的
      

  2.   


    -- 更新下视图
    EXEC SP_REFRESHVIEW TV1
    EXEC SP_REFRESHVIEW TV2
    EXEC SP_REFRESHVIEW TV3
      

  3.   

    我这里查询的结果就是没有体现更新的结果,所以我很纳闷
    我更新了依赖视图后,TV1视图的查询结果也不对了,数据结果是更新进来了,但是视图的结构也就是列并没有变化。我原来的想法是如果依赖视图修改后,用户视图就自动更新了,不需要手动维护修改视图的每一个用户视图。结果发现不太对劲。我和疑惑,按理说不应该啊,,,怎么回事???难道每次修改一个视图,还必须手工修改更新使用这个双腿的其他视图,那维护起来岂不是非常累,容易出错。难道数据库系统设计这个功能就那么困难么?谢谢各位的讨论,大家继续,别瞎猜啊,我试验的结果让我很疑惑请各位也试验下。找个最简单的视图UNION下看结果就行了。
      

  4.   

    sql server 2000是不能自动更新的