数据库视频总结四(存储过程和触发器)
1、存储过程
概念:它是一组未来完成特定功能的SQL语句集,经编译后存储在数据库中。存储过程可包含程序流,逻辑以及对数据库的查询。它们可以接受参数、输出参数、返回单个或多个结果集以及返回值。
作用:
与其他程序共享应用程序逻辑,因而确保了数据访问和修改的一致性。
具有安全性和所有权链接,以及可以附件到它们的证书。
提供了安全机制。
允许模块化程序设计。
可以减少网络通信流量。
分类:
用户自定义过程
系统存储过程
扩展存储过程
方法:
| 创建: | create |
| 调用 | exec |
| 修改 | Alter |
| 删除 | Drop |
临时存储过程
| # | 局部临时存储过程 |
| ## | 全局临时存储过程 |
嵌套存储过程,最多可以嵌套32层。想要查看存储过程级数,可以使用下面语句:
Print @@nestlevel
2、触发器
概念:触发器是一种特殊的存储过程,它是一个在修改指定表中的数据时执行的存储过程。经常通过创建触发器来强制实现不同表中的逻辑相关数据的引用完整性或一致性。由于用户不能绕过触发器,所以可以用它来强制实施复杂的业务规则,以此确保数据的完整性。
为什么使用触发器?
触发器自动执行,它们在标的数据作了任何修改后立即激活。
触发器可以通过对数据库中的相关表进行层叠更改,这比把代码写在前台更安全。
触发器可以强制限制,比check约束更复杂。与check不同的是,触发器可以引用其他表中的列。
| 触发器种类 | 针对的对象 | 说明 |
| DDL触发器 | DDL事件 | 数据库架构进行更改 |
| DML触发器 | DML事件 | update、delete、delete |
创建DDL触发器:
Create trigger T_notdelete On datebase For drop_table,alter_table as print ‘事务不能被处理,基础数据不能修改’ rollback创建DML触发器:
--创建insert触发器 Create trigger T_addnum On 学生信息 For insert As update 班级信息 set 班级人数=班级人数+1 Where 班级编号=1 --创建delete触发器 Create trigger T_deleteteacher On 教师信息 For delete As Select 姓名 as 被删除的教师姓名, 性别,年龄,联系电话 from delete --创建update触发器 Create trigger T_update On 教师信息 For update As If update (姓名) or update (性别) Begin Print ‘事务不能被处理,基础数据不能修改’Rollback transaction End ElsePrint ‘数据修改成功’
触发器可以通过事件进行触发而被执行;存储过程可以通过存储过程名直接被调用。
总结
以上是生活随笔为你收集整理的数据库视频总结四(存储过程和触发器)的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 数据库视频总结三(游标和事务)
- 下一篇: SQL—已更新或删除的行值要么不能使该行