数据库学习之存储过程——触发器

本文详细介绍了存储过程和触发器的概念、类型及其在数据库中的应用。存储过程是一组预编译的SQL语句,而触发器则是在特定事件发生时自动执行的一段代码。文章还介绍了触发器的特殊表、创建与管理方法,并讨论了触发器相对于约束的优势与局限。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

存储过程定义

将常用的或很复杂的工作,预先用SQL语句写好并用一个指定的名称存储起来,只有在创造时进行编译,以后每次执行时都不需再重新编译。

触发器定义

触发器是一种特殊的存储过程,但它不能被显示的调用,而是在往表中插入记录,更新记录或者删除记录时被自动的激活;触发器可以用来实现对表实施复杂的完整性约束。

特别地:系统为触发器准备了两个专用表:Inserted表和Deleted表。

Inserted表:存放执行delete或update语句而要从表中删除的所有行。

Delete表:存放执行Insert或update语句而要想表中插入的所有行。

触发器的种类

1.Instead of: 用于替代引起触发器执行的T-SQL语句。可用于表,视图。

2.After:在一个Insert,Update或delete语句之后执行,进行约束检查等动作都在after触发器被激活之前发生。只能用于表

注:一个表或视图的每一个修改动作都可以有一个instead of触发器,一个表的每个修改动作都可以有多个after触发器

触发器的创建

使用T-SQL语句

creat trigger trigger_name
on{table_name|view_name}
{for|after|instead of}
[insert,update,delete]
as
aql_statement


触发器的删除

基本语句

drop trigger trigger_name


查看数据库中已有的触发器

基本语句

use  jxcSoftware
go
select*from sysobjects where xtype='TR'


查看单个触发器

基本语句

exec sp_helptext'触发器名'


修改触发器

基本语句

alter trigger trigger_name
on{table_name|view_name}
{for|after|instead of}
[insert,update,delete]
as
aql_statement


当然对触发器的这些基本操作还可以通过企业管理器来操作。大家可以针对不同版本的SQL Sever来进行学习。

触发器的优点

1.自动执行

2.级联更新

3.强化约束

4.跟踪变化

5.强制业务逻辑

疑问疑问疑问

触发器有这么多优点,是不是就可以一味的去使用它呢?越多越好吗?其实不是这样的,触发器功能强大,轻松可靠的实现许多复杂的功能,但是仍要慎用。原因是这样的,如果我们滥用触发器会造成数据库及应用程序的维护困难

触发器不是一个简单的存储过程,它可以通过数据库中的相关表实现级联更改,不过,通过级联引用完整性约束可以更有效的执行这些更改。同时触发器可以强制比用check约束更为复杂的约束。

至于触发器和约束的比较下篇博客会写到......

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值