实验四-存储过程与触发器、函数

实验四-存储过程与触发器、函数

ID:40227520

大小:183.20 KB

页数:7页

时间:2019-07-27

实验四-存储过程与触发器、函数_第1页
实验四-存储过程与触发器、函数_第2页
实验四-存储过程与触发器、函数_第3页
实验四-存储过程与触发器、函数_第4页
实验四-存储过程与触发器、函数_第5页
资源描述:

《实验四-存储过程与触发器、函数》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、2012级计算机专业集美大学计算机工程学院20012~2013学年第一学期《数据库原理》实验报告题目:实验四存储过程与触发器、函数学号:2010810072成绩姓名:罗忠霖计算1013日期:2012.12.2一、实验使用环境:WindowXP、SQLServer2005二、实验内容与完成情况:1、增加一张库存表,如下图:程序代码createtable库存表(商品编码char(8)notnullprimarykey,商品进价moneynull,库存数量intnull,入库时间datetimenotnull)运

2、行结果2、从Purchase(进货表)和Sell(销售表)中备份空记录表:PurchaseBak和Sell1Bak。程序代码if(notexists(selectnamefromsysobjectswherename='PurchaseBak'))--若不存PurchaseBak表则创建,否则不可以(select*intoPurchaseBakfromPurchasewhere(1=0))运行结果程序代码if(notexists(selectnamefromsysobjectswherename='Sell

3、lBak'))--若不存在SelllBak表则创建,否则不可以(select*intoSelllBakfromPurchasewhere(1=0))72012级计算机专业集美大学计算机工程学院20012~2013学年第一学期运行结果3、创建一个触发器。向进货表中插入一条记录时,这个触发器都将更新库存表。如果库存有该类商品时,那么该商品的进价即为两次进价的平均值(因为每次的进价可能会不相同),库存量为原有库存加该次进货数量;(算法为:(库存商品进价*库存量+进货价*进货量)/(库存量+进货量);如果没有该商品

4、,则插入到库存表中。程序代码createtriggertri_Purchase--触发器名字onPurchaseafterinsertasbegindeclare@进货价money,@进货数量int,@商品编码char(8),@库存数量int,@库商品进价money,@库商品编码char(8)--声明变量select@商品编码=商品编码,@进货数量=数量,@进货价=进货价frominserted--取插入的商品信息if(@商品编码in(select商品编码from库存表))--库存表里存在beginsele

5、ct@库商品进价=商品进价,@库存数量=库存数量from库存表where(商品编码=@库商品编码)update库存表--更新库存表set商品进价=(@库商品进价*@库存数量+@进货价*@进货数量)/(@进货数量+@库存数量),库存数量=(@进货数量+@库存数量),入库时间=getdate()where(商品编码=@商品编码)endelse--库存表里不存在商品信息insertinto库存表--插入进货信息(商品编码,商品进价,库存数量,入库时间)values(@商品编码,@进货价,@进货数量,getdate

6、())end72012级计算机专业集美大学计算机工程学院20012~2013学年第一学期运行结果测试代码insertintoPurchasevalues('JH000001','iphone4','apple',4500,5000,100,'2012-9-1',1001)select*from库存表select*fromPurchase--查看表信息测试结果测试代码insertintoPurchasevalues('JH000001','iphone4','apple',4800,5300,100,'201

7、2-10-1',1001)测试结果4、创建一个触发器。向销售表中插入一条记录时,这个触发器将更新库存表。库存量为原有库存量减去销售数量。如果库存数量少于10,则显示”该商品库存数量少于10,请及时进货”;如果库存不足,则显示:“‘库存不足’”。程序代码crecreatetriggertri_SellonSellafterinsertasbegindeclare@售出数量int,@库存数量int,@售商品编码char(8)select@售出数量=数量,@售商品编码=商品编号frominsertedselect

8、@库存数量=库存数量from库存表where商品编码=@售商品编码if(@售商品编码in(select商品编码from库存表))--判断库存里有没有该商品if(@库存数量>0and@库存数量>@售出数量)begin72012级计算机专业集美大学计算机工程学院20012~2013学年第一学期update库存表set库存数量=(@库存数量-@售出数量)where(商品编码=@售商品编码)select@库存数量=库存数

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。