下载此文档

sql实验报告.doc


文档分类:IT计算机 | 页数:约8页 举报非法文档有奖
1/8
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/8 下载此文档
文档列表 文档介绍
-
. z.
实验四触发器实验
after 触发器
在lineitem表上定义一个after触发器,当修改列工程e*tendedprice discount
ta*时,要把oend
(3)在lineitem表上定义一个after触发器,当删除一项订单明细记录时,
自动修改orders表的totalprice,以保证数据一致性
CREATE TRIGGER trig_lineitem_price_delete on lineitem
for delete
AS
begin
--声明游标变量指向deleted表
declare cursor_deleted cursor read_only
for select orderkey,linenumber,e*tendedprice,discount,ta* from deleted
-- 声明变量获取查找信息
declare orderkey int,linenumber int,e*tendedprice real,discount real,ta* real
-- 翻开游标
open cursor_deleted
-- 读取游标
fetch ne*t from cursor_deleted into orderkey,linenumber,e*tendedprice,discount,ta*
while FETCH_STATUS=0
begin
--声明一个变量保存重新计算的新价格
declare new_totalprice real
select new_totalprice=e*tendedprice*(1-discount)*(1+ta*)
--用新的总价格变量更新orders表的totalprice
update orders set totalprice=totalprice-new_totalprice where orderkey=orderkey
-
. z.
fetch ne*t from cursor_inserted into orderkey,linenumber,e*tendedprice,discount,ta*
end
deallocate cursor_inserted
end
(4)验证update触发器
--查看号订单的totalprice
select * from orders where orderkey=1830;
--查看明细表的相关信息
select * from lineitem where orderkey=1830 and linenumber=1;
--验证update触发器
update lineitem set ta*=ta*+ where orderkey=1830;
instead of 触发器
在lineitem表上定义一个instead of update触发器,当修改明细表中的数量quantity时,应先检查供给表partsupp的availqty是否足够,缺乏够则

sql实验报告 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数8
  • 收藏数0 收藏
  • 顶次数0
  • 上传人2028423509
  • 文件大小71 KB
  • 时间2022-06-22