机房重构小结--存储过程和触发器

     上一篇总结主要写了一些需求分析和数据库设计方面最新的感悟,这一片我想写写存储过程。存储过程,我的理解就是存储需要执行的一些方法。存储过程是属于数据库所拥有的,所以存储过程是对数据库执行的一些操作,通过SQL语句来完成。

存储过程

一 分类:

系统存储过程:以sp_开头,用来进行系统的各项设定,取得信息,相关管理工作。

本地存储过程:用户创建的存储过程是由用户创建并完成某一特定功能的存储过程,我们机房重构用到的存储过程属于本地存储过程。

临时存储过程:本地临时存储过程和全局临时存储过程

                               本地临时存储过程:存放在tempdb数据库中,且只有创建它的用户才能执行它

             全局临时存储过程:存储在tempdb数据库中,一旦创建,以后连接到任何服务器的任意用户都可以执行它,而且不需要特定的权限

远程存储过程:存储于远程服务器上,通常可以使用分布式查询和EXECUTE命令执行。

扩展存储过程:用外部程序语言编写,以xp_开头。

 

二 应用:

机房重构小结--存储过程和触发器_第1张图片

 

三 代码:

机房重构小结--存储过程和触发器_第2张图片

触发器

一 分类:

DML触发器:当数据库中表中的数据发生变化时,包括insert,update,delete任意操作,如果我们写了相应的触发器,那么该触发器自动执行。

DDL触发器:主要是审核与规范数据库中表,触发器视图等结构上的操作。例如:修改表、列,新增表、列。主要是在数据结构发生变化时执行。

登录触发器:为相应login事件而激发存储过程,是SQL实例建立用户会话时引发的事件。


二 创建:

机房重构小结--存储过程和触发器_第3张图片

三 代码的编写:

机房重构小结--存储过程和触发器_第4张图片

四 区别比较:

     触发器不能执行EXECUTE语句调用,而是在用户执行Transact-SQL语句时自动触发执行

 

总结:

      触发器和存储过程的目的都是简化程序,各自有各自的优缺点,存储过程更倾向于功能的完成,触发器更关注复杂处理的逻辑。不过,在不同的情况下,选择最合适的,才是对程序最好的!

 

 

你可能感兴趣的:(机房重构小结--存储过程和触发器)