设为首页 收藏本站
查看: 973|回复: 0

[经验分享] SQL 视图

[复制链接]

尚未签到

发表于 2018-10-17 06:56:54 | 显示全部楼层 |阅读模式
13.10.1 创建视图  SQL SERVER 提供了使用SQL SERVER Enterprise Manager 和Transac-SQL 命令两种方法来创建视图。在创建或使用视图,时应该注意到以下情况:
  ? 只能在当前数据库中创建视图,在视图中最多只能引用1024 列;
  ? 如果视图引用的表被删除,则当使用该视图时将返回一条错误信息,如果创建具有相同的表的结构新表来替代已删除的表视图则可以使用,否则必须重新创建视图;
  ? 如果视图中某一列是函数、数学表达式、常量或来自多个表的列名相同,则必须为列定义名字;
  ? 不能在视图上创建索引;不能在规则、缺省、触发器的定义中引用视图;
  ? 当通过视图查询数据时,SQL SERVER 不仅要检查视图引用的表是否存在,是否有效,而且还要验证对数据的修改是否违反了数据的完整性约束。如果失败将返回错误信息,若正确,则把对视图的查询转换成对引用表的查询。
  1、使用SQL SERVER Enterprise Manager 来创建视图
  在SQL SERVER 中使用SQL SERVER Enterprise Manager 来创建视图的步骤为:
  (1) 启动SQL SERVER Enterprise Manager,登录到指定的服务器;
  (2) 打开要创建视图的数据库文件夹,选中view 图标,此时在右面的窗格中显示当前数据库的所有视图,右击图标,在弹出菜单中选择New View 选项,打开New View 对话框。如图13-1。 在New View 对话框中共有四个区:表区、列区SQL script 区、数据结果区(此时对话框中的四个区都是空白的);

  (3) 在创建视图时,首先点击http://img.xx113.com/newsfile/2006313231154226.gif按钮,打开添加表对话框,如图13-2 所示;

  (4) 在列区中选择将包括在视图的数据列,此时相应的SQL SERVER 脚本便显示在SQL script 区;
  (5) 单点http://img.xx113.com/newsfile/2006313231155730.gif按钮,在数据结果区将显示包含在视图中的数据行;
  (6) 单击http://img.xx113.com/newsfile/2006313231155710.gif按钮,在弹出对话框中输入视图名,单击保存完成视图的创建。
  2、Transact-SQL 命令创建视图
  使用Transact-SQL 命令CREATE VIEW 创建视图的语法格式为:

  各参数的含义说明如下:
  ? view_name
  表示视图名称。
  ? select_statement
  构成视图文本的主体,利用SELECT 命令从表中或视图中选择列构成新视图的列。
  提示:但是在SELECT语句中,不能使用ORDER BY、COMPUTE、COMPUTE BY语句,不能使用INTO关键字,不能使用临时表。
  ? WITH CHECK OPTION
  保证在对视图执行数据修改后,通过视图能够仍看到这些数据。比如创建视图时定义了条件语句,很明显视图结果集中只包括满足条件的数据行。如果对某一行数据进行修改,导致该行记录不满足这一条件,但由于在创建视图时使用了WITH CHECH OPTION 选项,所以查询视图时,结果集中仍包括该条记录,同时修改无效。
  ? ENCRYPTION
  表示对视图文本进行加密,这样当查看syscomments 表时,所见的txt 字段值只是一些乱码。
  ? SCHEMABINDING
  表示在select_statement 语句中如果包含表、视图或引用用户自定义函数,则表名、视图名或函数名前必须有所有者前缀。
  ? VIEW_METADATA
  表示如果某一查询中引用该视图且要求返回浏览模式的元数据时,那么SQL Server将向DBLIB 和OLE DB APIS 返回视图的元数据信息
  例13-13: 使用WITH ENCRYPTION WITH CHECK OPTION 选项,并且包含函数列。

  由于使用了WITH CHECK OPTION, 所以当对视图进行修改时,将返回错误信息。比如执行以下语句:

  返回错误信息为:

  13.10.2 管理视图
  1、查看、修改视图
  在SQL SERVER 中,通过SQL SERVER Enterprise Manager 查看和修改视图主要执行以下步骤:
  (1) 启动SQL SERVER Enterprise Manager,登录到指定的服务器;
  (2) 打开要创建视图的数据库文件夹,选中view 图标,此时在右面的窗格中显示当前数据库的所有视图;
  (3) 右击要查看的视图,在弹出菜单中选择Properties 选项,打开View Properties 对话框,如图13-3 所示;

  (4) 在该对话框内可浏览到该视图的正文,也可以对该视图进行修改,然后单击Check Syntax 按钮来对语句合法性进行检查,若要对视图的访问权限进行设置,请单击Permissions 按钮。
  2 使用存储过程检查视图

  系统过程sp_help 用来返回有关数据库对象的详细信息,如果不针对某一特定对象,则返回数据库中所有对象信息其语法如下:
  sp_help 数据库对象名称
  系统过程sp_helptext 检索出视图、触发器、存储过程的文本。其语法为:
  sp_helptext 视图(触发器、存储过程)

  3 删除视图
  删除视图与删除表一样都使用DROP 命令。其语法为:
  DROP VIEW 视图名称


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-622473-1-1.html 上篇帖子: SQL语句教程(04) AND OR 下篇帖子: 安裝 SQL Server 2008 R2容錯轉移叢集心得筆記 – 第 1 篇
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表