上一篇总结主要写了一些需求分析和数据库设计方面最新的感悟,这一片我想写写存储过程。存储过程,我的理解就是存储需要执行的一些方法。存储过程是属于数据库所拥有的,所以存储过程是对数据库执行的一些操作,通过SQL语句来完成。
存储过程
一 分类:
系统存储过程:以sp_开头,用来进行系统的各项设定,取得信息,相关管理工作。
本地存储过程:用户创建的存储过程是由用户创建并完成某一特定功能的存储过程,我们机房重构用到的存储过程属于本地存储过程。
临时存储过程:本地临时存储过程和全局临时存储过程
本地临时存储过程:存放在tempdb数据库中,且只有创建它的用户才能执行它
全局临时存储过程:存储在tempdb数据库中,一旦创建,以后连接到任何服务器的任意用户都可以执行它,而且不需要特定的权限
远程存储过程:存储于远程服务器上,通常可以使用分布式查询和EXECUTE命令执行。
扩展存储过程:用外部程序语言编写,以xp_开头。
二 应用:
三 代码:
触发器
一 分类:
DML触发器:当数据库中表中的数据发生变化时,包括insert,update,delete任意操作,如果我们写了相应的触发器,那么该触发器自动执行。
DDL触发器:主要是审核与规范数据库中表,触发器视图等结构上的操作。例如:修改表、列,新增表、列。主要是在数据结构发生变化时执行。
登录触发器:为相应login事件而激发存储过程,是SQL实例建立用户会话时引发的事件。
二 创建:
三 代码的编写:
四 区别比较:
触发器不能执行EXECUTE语句调用,而是在用户执行Transact-SQL语句时自动触发执行
总结:
触发器和存储过程的目的都是简化程序,各自有各自的优缺点,存储过程更倾向于功能的完成,触发器更关注复杂处理的逻辑。不过,在不同的情况下,选择最合适的,才是对程序最好的!