有个问题,也许很简单,请不要见笑!
不知道大家想过没有,所有视图的功能用存储过程都能实现,而且存储过程的性能更好,那为什么视图还能存在呢?
---------------------------------------------------------------
两者的用途不是完全相同.
存储过程- 当然是预先编译sql语句, 或让sql作某种特定程序.
视图= 让用户提取和他们有关的数据, 有提高安全保安及提升query效率的意味.
其实每种sql server都有自己较低层面的运作, 而存储过程则通过sql语言来运行.
情形有点像 c 和 asm 的分别. 所以单以c来编程, 总不及c + asm互相协作
为好.
---------------------------------------------------------------
如果有一个数据库其中的表各个列名取得非常生硬,现在你要使用这些表,你当然愿意为这些列取一个你能够理解的名字。还有,如果原来有一个表
t(a,b,c,d),现在要把这个表拆分为t1(a,b),t2(c,d),现实中这种情况很常见。现在基于原来表结构的应用程序已经写好。为了是数据库的外模式不发生改变,你可以创建view(a,b,c,d)。还有.......我忘了
---------------------------------------------------------------
呵呵,我觉得主要是模块化程序。比如:
某个地方要用到一个查询
Select ......from tb1 ---这个查询的代码比较长,但数据量并不大.
而另外一个地方也要用到.
此时,我就会把这个查询写成一个视图.
当然,这根据具体情况.如果数据量不大的,对性能要求相对没有那么高的,就可以用视图.