博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
视图、存储过程、触发器讲解
阅读量:6227 次
发布时间:2019-06-21

本文共 1441 字,大约阅读时间需要 4 分钟。

视图的特点

视图只是一种逻辑对象,是一种虚拟表,它并不是物理对象,因为视图不占物理存储空间,在视图中被查询的表称为视图的基表,大多数的select语句都可以用在创建视图中

优点:集中用户使用的数据,掩码数据的复杂性,简化权限管理以及为向其他应用程序输出而重新组织数据等等

语法:  create view view_name [(column[,...n])]

     with encryption

     as select_statement

     with check option

存储过程的特点

存储过程是存储在服务器上的一组预编译的Transact-SQL语句,存储过程是一种封装重复任务操作的一种方法,支持用户提供的变量,具有强大的编程功能

优点:与其他应用程序共享应用程序的逻辑,因此确保一致的数据访问和操纵

     提供一种安全机制

   加速存储过程的执行,提高系统的性能

   减少网络交通

存储过程的类型:系统存储过程、本地存储过程、临时存储过程、远程存储过程和扩展存储过程。不同类型的存储过程具有不同的作用

语法:    create procedure procedure_name

     @parameter data_type

       with{recompile|encryption|recompile,encryption}

       as sql_statement

执行存储过程有两种方法:

方法一:直接执行存储过程,就是调用execute语句来执行存储过程

方法二:在insert语句中执行存储过程

触发器的特点

当有操作影响到触发器保护的数据时,触发器就自动发生,因此,触发器是在特定表上进行定义的,该表也称为触发器表,也是一种特殊类型的存储过程,与存储过程的区别:存储过程可以由用户直接调用执行,但是触发器不能被直接调用执行

触发器的类型:insert类型,update类型,delete类型

语法:   create trigger trigger_name

    on {table |view}

    with encryprion

    {for|after|instead of}{[delete][,][insert][,][update]}

    as sql _statement

工作原理:

(insert)当向表中插入数据时,insert触发器触发执行,当insert触发器触发时,新的记录增加到触发器表中和inserted表中。触发器可以检查inserted表,来确定该触发器的操作是否应该执行和如何执行,在inserted表中的那些记录,总是触发器表中一行或多行记录的冗余;

(delete)当触发一个delete触发器时,被删除的记录房子一个特殊的deleted表中。deleted表是一个逻辑表,用来保存已经从表中删除的记录;

(update)修改一条记录就等于插入一条新记录和删除一条旧记录,当在某一个update触发器表的上面修改一条记录时,表中原来的记录移动到deleted表中,修改过的记录插入到了inserted表中,触发器可以检查deleted表和inserted表以及被修改的表。

一个触发器实例:

一般地,开发触发器的过程包括用户需求分析,确定触发器的逻辑结构,编写触发器代码和测试触发器

转载于:https://www.cnblogs.com/hbwy/p/4949350.html

你可能感兴趣的文章
redis系列:通过队列案例学习list命令
查看>>
关于如何把项目做得更好的一次思考
查看>>
webpack4 配置解析和实战
查看>>
Mac OS 使用iTerm2实现服务器间文件的上传下载
查看>>
react学习笔记二----nodejs服务器搭建及异常处理
查看>>
PHP 操作 Beanstalkd 方法及参数注释
查看>>
Elasticsearch Java High Level REST Client(入门)
查看>>
开了香槟的Kubernetes并不打算放慢成功的脚步
查看>>
AngularJs与Angular 常用的指令写法的区别;
查看>>
如何在Angular6下使用ng-zorro-antd
查看>>
【React进阶系列】从零开始手把手教你实现一个Virtual DOM(一)
查看>>
区块链概念 That You Must Know 第一期.md
查看>>
webpack3.0 前端工程化
查看>>
ES2018 新特征之:异步迭代器 for-await-of
查看>>
在Vue中使用highCharts绘制3d饼图
查看>>
vue+webpack+nginx 部署在服务器非根目录下访问404问题
查看>>
观麦在 Webpack 的经验
查看>>
angular.js和vue.js中实现函数去抖(debounce)
查看>>
Laravel SMS 短信发送包
查看>>
OkHttp之ApplicationInterceptors与NetworkInterceptors
查看>>