1、分离逻辑与业务数据。
众所周知,在与数据库相互的应用系统的设计过程中,我们经常会对其操作行为分离,当然,这第一步就是要求不要用数据库敏感控件,第二就是要求显示与操作分离,最好的办法就是采用视图,比如我们有如下需求。
A,查看一张单据的明细
B,对该明细进行编辑
虽然需求很简单,但如果要考虑到需求的变更,就需要我们经常重新组织查看的方式,因为编辑操作是固定的,用户可能会想能不能显示该张单据的时候,同时显示一些别的数据,这个时候,如果只在服务器端更改一些设置,就非常OK了,我们给视图增加联接那项数据的操作,当然,要求我们显示端是拼凑SQL语句形成的。
2、查询的妙用。
如果想保存一个现有的查询条件生成的查询为一个新的查询,怎么操作呢,当然是把现有的这些条件以及显示数据集全部当成一个新的视图进行了,以后只要对新的视图进行操作就OK了。
3、减少写代码的错误率
如果写存储过程多了,肯定会碰到以下的类似问题,经常要进行 exec('update ' + @tablename + ' set did = 10 '),如果只是单表,倒好办一点,如果是多表的话,就非常麻烦了,拼凑的SQL语句一是很难看懂,格式麻烦,二是无法使用MSSQL的自动语法检错工具,这时,如果我们建一个“临时”视图,一切问题就好办了,当然要注意多用户以及隔离问题
if exists..... drop view 临时视图名, exec('create view 临时视图名 select * from ' + @tablename),以后对该视图操作,就可以防止出现简单的语法错