没有合适的资源?快使用搜索试试~ 我知道了~
SqlServer触发器例子.pdf
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 118 浏览量
2021-10-08
17:47:35
上传
评论
收藏 17KB PDF 举报
温馨提示
试读
13页
SqlServer触发器例子.pdf
资源推荐
资源详情
资源评论
定义: 何为触发器?在 SQL Server 里面也就是对某一个表的一定的操作,触发某种条件,
从而执行的一段程序。触发器是一个特殊的存储过程。
常见的触发器有三种:分别应用于 Insert , Update , Delete 事件。
我为什么要使用触发器?比如,这么两个表:
Create Table Student( -- 学生表
StudentID int primary key, -- 学号
....
)
Create Table BorrowRecord( -- 学生借书记录表
BorrowRecord int identity(1,1), -- 流水号
StudentID int , -- 学号
BorrowDate datetime, -- 借出时间
ReturnDAte Datetime, -- 归还时间
...
)
用到的功能有 :
1. 如果我更改了学生的学号 , 我希望他的借书记录仍然与这个学生相关 ( 也就是同
时更改借书记录表的学号 );
2. 如果该学生已经毕业,我希望删除他的学号的同时,也删除它的借书记录。
等等。
这时候可以用到触发器。对于 1,创建一个 Update 触发器:
Create Trigger truStudent
On Student -- 在 Student 表中创建触发器
for Update -- 为什么事件触发
As -- 事件触发后所要做的事情
if Update(StudentID)
begin
Update BorrowRecord
Set StudentID=i.StudentID
From BorrowRecord br , Deleted d ,Inserted i --Deleted 和
Inserted 临时表
Where br.StudentID=d.StudentID
end
理解触发器里面的两个临时的表: Deleted , Inserted 。注意 Deleted 与 Inserted
分别表示触发事件的表“旧的一条记录”和“新的一条记录”。
一个数据库系统中有两个虚拟表用于存储在表中记录改动的信息,分别是:
虚拟表 Inserted 虚拟表 Deleted
在表记录新增时 存放新增的记录 不存储记录
修改时 存放用来更新的新记录 存放更新前的记
录
删除时 不存储记录 存放被删除的记
录
一个 Update 的过程可以看作为:生成新的记录到 Inserted 表,复制旧的记录到
Deleted 表,然后删除 Student 记录并写入新纪录。
对于 2,创建一个 Delete 触发器
Create trigger trdStudent
On Student
for Delete
As
Delete BorrowRecord
From BorrowRecord br , Delted d
Where br.StudentID=d.StudentID
从这两个例子我们可以看到了触发器的关键: A.2 个临时的表; B. 触发机制。
SQL触发器实例 2
/*
建立虚拟测试环境,包含:表 [ 卷烟库存表 ] ,表 [ 卷烟销售表 ] 。
请大家注意跟踪这两个表的数据, 体会触发器到底执行了什么业务逻辑, 对数据有什么影响。
为了能更清晰的表述触发器的作用, 表结构存在数据冗余, 且不符合第三范式, 这里特此说
明。
*/
USE Master
GO
IF EXISTS (SELECT NAME FROM SYSOBJECTS WHERE XTYPE = ’U’ AND NAME = ’卷烟库存
表’)
DROP TABLE 卷烟库存表
GO
IF EXISTS (SELECT NAME FROM SYSOBJECTS WHERE XTYPE = ’U’ AND NAME = ’卷烟销售
表’)
DROP TABLE 卷烟销售表
GO
-- 业务规则:销售金额 = 销售数量 * 销售单价 业务规则。
剩余12页未读,继续阅读
资源评论
qq_58157133
- 粉丝: 12
- 资源: 11万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功