日度归档:2019年5月19日

mssql sqlserver 数据库视图作用说明?视图的应用场景说明?


摘要:
下文详细讲述数据库视图的作用及应用场景,如下所示:
实验环境:sql server 2008 R2


很多人可能有和我一样的困惑,视图明明就是一个查询的sql脚本,而且大部分视图不占用任何存储空间,我们为什么要使用视图呢?是不是多此一举呢?
通过一段时间的使用和学习,我将个人总结关于视图的一些想法分享给大家,如下所示

一、简化数据操作方法

因为 视图可以将多个表进行关联组合,形成新的数据集合,那么当我们检索数据时,我们可以通过直接查阅视图的方法对数据进行读取,可以简化代码的编写时间。
例:
我们进行以下的三张表,进行组合并形成一个视图,下次我们涉及同时关联查询三张表时,直接读取视图就可。

二、安全性

2.1因为视图时虚拟,并且可对物理数据表进行了别名化,
当我们检索数据时,只需检索视图,并且不需知道实际的物理表的名称,这种操作方式加强了数据库的安全。
2.2 有些视图可以设置为只读视图,此时视图所涉及的数据也得到了安全的保证。

三、数据安全性

我们可以针对不同的角色编写不同的视图,并加入不同的查询条件,使不同的角色人员只可查阅相应视图,使用这种方式可以达到加强数据范围的权限。
例:
为行政人员
新建一个视图,让其只可查询采购物品类别为“行政类”的产品。
为销售人员
新建一个视图,让其只可查询采购物品类别为“经营类”的产品。
为售后人员
新建一个视图,让其只可查询采购物品类别为“售后类”的产品。

mssql sqlserver 数据库视图建立–“create view必须是批处理中仅有的语句”的方法分享


摘要:
下文讲述新建视图时,出现”create view必须是批处理中仅有的语句”的异常处理方法
实验环境:sql server 2008 r2


今天使用脚本创建数据库视图,出现下面的错误信息:

create view必须是批处理中仅有的语句
通过查阅资料才获悉,此种错误现象是由于创建视图的语句不属于创建脚本的第一句所导致的异常,我们需将创建视图的语句放入脚本的第一句,或者创建视图的脚本前面加上go,使其作为批处理脚本的第一句,具体方法如下所示:

----原脚本----

use [maomaoDB]

create view vw_maomao 
 as
select a.* from maomaoA as a 
  left join maomaoB as b on a.keyId = b.keyId  
   where b.keyId is null  
---运行以上脚本会出现相应的错误信息,我们只需在use [maomaoDB]后面加上一个go,将创建视图的脚本作为一个批处理的开头就可以解决此类异常现象,如下所示:
----修改后正确的脚本-----
use [maomaoDB]
go
create view vw_maomao 
 as
select a.* from maomaoA as a 
  left join maomaoB as b on a.keyId = b.keyId  
   where b.keyId is null  
go

mssql sqlserver SQL错误:“必须是批处理中仅有的语句”处理方法分享


摘要:
今天创建存储过程升级脚本时,出现以下错误信息,必须是批处理中的 仅有的语句,下文将记录以下此处异常的解决方法,如下所示:
实验环境:sql server 2008 R2


出现此类异常,通常是我们创建sqlserver存储过程时,create关键字不在第一行,所以才报出这样的错误,那么我们可以从以下两个方法来解决此类问题。

方法1:

剔除批处理前面的语句,让create关键字放入批处理的第一行的位置

方法2:

采用sqlserver特有的关键字go处理。
———————————-
在create前面加入go关键字。

采用以上两种方法可以完美的解决此问题。