用MS SQL视图,究竟怎样判断那些是可以修改的视图,那些是不可修改的视图呢,怎样区分的

解决方案 »

  1.   

    C)      视图的更新
    视图也可以作为一个普通的表,并且可以更新(INSERT、UPDATE、DELETE)里面的数据,但是有一些视图是不可以更新的,并且可更新的视图有许多限制:
    1.    若视图字段来自于表达是或者常数,则不能INSERT和UPDATE,但可以DELETE
    2.    若字段来自于库函数,则不允许更新
    3.    若视图定义中有GROUP BY,则不允许更新
    4.    若视图定义中有DISTINCT,则不允许更新
    5.    若视图定义中有嵌套查询,并且嵌套查询的FROM子句中涉及的表就是导出该视图的基本表,则不允许更新
    6.    若视图是两个以上的基本表导出,则不允许更新
    7.    在不允许更新的视图上导出的视图,则不允许更新
    上面的理论的研究还不完善,目前给出的是基于DB2的。
      

  2.   

    现在决定不管是可以修改的视图还是不可以修改的视图都采用下列方法:
    我现在还是搞不清做了的视图怎样区分可以修改还是不可以修改
    但现在已经决定以后修改视图数据就用ADOQUERY+UPDATESQL
    或者ADOQUERY+UPDATESQL
    都不用
    直接把数据到进临时表,在修改保存算了