用不用view是一个开发风格的问题,应该说没有什么情况必须用View。用view的好处在于可以对表进行封装,方便日后对表的维护。

解决方案 »

  1.   

    只是风格、习惯的问题吗?为什么不用Stored Procedure存储过程来代替View呢?View的执行效率高吗?
      

  2.   

    是不是所有的View都可以省略掉?
      

  3.   

    过多不好,适当有好处。
    封装、权限控制、简化SQL语句书写等适当使用;
    我认为没有必须用的时候!
      

  4.   

    封装、权限控制、简化SQL语句书写、保护数据库数据安全,这些功能存储过程也照样能做,而且在服务端先编译好了。那么为什么非要用View而不用Stored Procedure呢?能给出充分的理由吗?
      

  5.   

    可以对view中的数据进行insert,update,delete等操作,如果是stored procedure就不可以了
      

  6.   

    To try111():纯属一派胡言!insert,update,delete等用stored procedure照样可以实现!
      

  7.   

    to trybird:
    你误解了: try111() 的意思:
    假设我有一个视图:
    create view View1
    as
    select No,Name,addr from employee那么我可以对View1进行insert update等操作
    如 insert into View1 values(...)
      

  8.   

    To ylm163net(文秀):create procedure pro_ins_emp
    as
    insert into employee(No,Name,addr) values(...)事实上,View只是在连接多个表(不管内联外联),使其操作起来看上去更象一个虚拟table,但效率决不可和存储过程相比。并且所有View做的,Stored Procedure都能做,而Stored Procedure做的,View做不到 
      

  9.   

    因为安全性问题,View有时候也会隐藏一些字段,仅连接一个单表
    同时,View能做的,Procedure,未必能做,具一例如下:设视图View是入库单的一个视图,因为客户的需求是多样的,
    假设客户需要某年某月的入库纪录,可以查询:
    select * from View
    where datapart(year,indate)=yearm and datepart(month,indate)=monthn也许有客户仅需某天的纪录,当然也可能仅查询某个人的纪录,
    存储过程则无法适应这种多样性查询,除非针对每一种查询
    构造一个过程,这是不现实的
      

  10.   

    另外,对于
    select * from table or view
    这样的简单查询,存储过程与视图没有什么效率差别
      

  11.   

    To ylm163net(文秀):呵呵,兄弟,好象你的观点不值一驳吧? 
      

  12.   

    或许不值一驳,不过我相信,
    做数据库,不用View,只用
    Procedure,你不会坚持多久的,
    不信你试试看
    我不想自己把自己逼疯了
      

  13.   

    我已经做过很多项目了,全用Stored Procedure,一个View也没用过!欢迎大家跟我探讨!尤其不服气的。你要说服我,使我服气,必须用真知灼见!
      

  14.   

    to trybird
    你都做过那些项目啊?
      

  15.   

    当然,如果程序是自己用的,Procedure也可不用,
    作为一个人性化的数据库产品,必然涉及到用户的
    各种可能的查询,Procedure是无法应付的,甚至
    可能要动态构建sql
    trybird(菜鸟) :
    不要以为在任何情况下,存储过程总是有明显的速度优势
      

  16.   

    当我使用参照时,我使用VIEW
    当我要修改多个表且有一定动态性时,我用存储过程
    对于简单的操作,view有其透明性
    当用到查询返回结果集时,VIEW可以有缓存
    我想这可能比存储过程要快点吧(不确定),但操作是有一定方便之处的
      

  17.   

    View 是虚表,也就是说它既有表的特性,能在其上面做任何可以对表的操作,select、filter、insert...等等。
    如果说procedure可以完全替代View那MS“大笨蛋”在SQL SERVER中做个View选项是"没事做",
    更或者说那些数据库专家研究View是没事找做?
    应该承认Procedure 的功能,但View何尝不有它的“看家本领”。
    所以该用Procedure与View就用吧!
      

  18.   

    View和Procedure各有各的用处
    对于View的而言,因为View是基于Table的,所以关于Table的所有权限,View也一样有
    但Procedure是没有权限可言的所以View多用来供用户对数据进行处理,而Procedure常用来作系统级的后台数据处理
    --一家之言,希望大家多多指正