数据库视频总结四(存储过程和触发器)

本文深入探讨了存储过程和触发器的概念、作用及分类,包括如何创建、调用、修改和删除存储过程,以及触发器的自动执行特性、强制数据完整性的能力,并详细介绍了DDL和DML触发器的创建方法。

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 
Else
    Print ‘数据修改成功’

 

触发器可以通过事件进行触发而被执行;存储过程可以通过存储过程名直接被调用。

评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

宋文轩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值