none
在表中插入了一条纪录,但是视图中没有更新呢 RRS feed

答案

  • 可以试试用最直接的办法检查,使用view的定义SQL运行一下,看看能不能返回新插入行。可能where条件过滤掉了原表中新插入的记录。

     

    2008年9月6日 19:07
  •  

    视图是虚拟表,它没有实际的数据(除非是索引视图), 它是访问的时候才去基础表取数据的

    所以, 除非你的视图定义出现问题(例如设置了条件,你update之后的数据恰好不满足这个条件), 不应该出现楼主提到的问题

     

     

    对于索引视图, 它的维护是自动的(和你的数据变更使用相同的事务(不管你有没有手工启动事务,都有一个内部事务)), 理论上不会出现问题

     

    如果真有问题, 你可以用 sp_refreshview '视图名' 重新刷新视图

    2008年9月6日 21:20
  •  

    多半是你增加的记录不符合视图定义时的过滤条件
    2008年9月7日 1:11

全部回复

  • 可以试试用最直接的办法检查,使用view的定义SQL运行一下,看看能不能返回新插入行。可能where条件过滤掉了原表中新插入的记录。

     

    2008年9月6日 19:07
  •  

    视图是虚拟表,它没有实际的数据(除非是索引视图), 它是访问的时候才去基础表取数据的

    所以, 除非你的视图定义出现问题(例如设置了条件,你update之后的数据恰好不满足这个条件), 不应该出现楼主提到的问题

     

     

    对于索引视图, 它的维护是自动的(和你的数据变更使用相同的事务(不管你有没有手工启动事务,都有一个内部事务)), 理论上不会出现问题

     

    如果真有问题, 你可以用 sp_refreshview '视图名' 重新刷新视图

    2008年9月6日 21:20
  •  

    多半是你增加的记录不符合视图定义时的过滤条件
    2008年9月7日 1:11
  • 请检查定义视图的SQL查询语句,看看新插入的记录是否符合查询语句的where条件。

     

    也可以在查询分析器中执行定义视图的SQL语句,看看新插入的记录是否能被查出来。

    2008年9月8日 2:59