- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《数据库原理》实验报告
题目:四 存储过程与触发器、函数 学号:2010810072 成
绩 姓名: 罗忠霖 计算1013 日期:2012.12.2
实验使用环境:
WindowXP 、SQL Server 2005
实验内容与完成情况:
1、增加一张库存表,如下图:
程序代码 create table 库存表
(
商品编码char(8) not null primary key ,
商品进价money null,
库存数量int null,
入库时间datetime not null
) 运行结果 2、从Purchase (进货表)和Sell(销售表)中备份空记录表: PurchaseBak和Sell1Bak。
程序代码 if(not exists(select name from sysobjects where name=PurchaseBak ))--若不存PurchaseBak表则创建,否则不可以
(select * into PurchaseBak
from Purchase
where (1=0)) 运行结果 程序代码 if(not exists(select name from sysobjects where name=SelllBak ))--若不存在SelllBak表则创建,否则不可以
(select * into SelllBak
from Purchase
where (1=0)) 运行结果
3、创建一个触发器。向进货表中插入一条记录时,这个触发器都将更新库存表。如果库存有该类商品时,那么该商品的进价即为两次进价的平均值(因为每次的进价可能会不相同),库存量为原有库存加该次进货数量;(算法为:(库存商品进价*库存量+进货价*进货量)/(库存量+进货量);如果没有该商品,则插入到库存表中。
程序代码 create trigger tri_Purchase--触发器名字
on Purchase
after insert
as
begin
declare @进货价money,@进货数量int,@商品编码char(8),
@库存数量int,@库商品进价money,@库商品编码char(8)--声明变量
select @商品编码=商品编码,@进货数量=数量,@进货价=进货价from inserted--取插入的商品信息
if(@商品编码in (select 商品编码from 库存表))--库存表里存在
begin
select @库商品进价=商品进价,@库存数量=库存数量from 库存表where (商品编码=@库商品编码)
update 库存表--更新库存表
set 商品进价=(@库商品进价*@库存数量+@进货价*@进货数量)/(@进货数量+@库存数量),
库存数量=(@进货数量+@库存数量),入库时间=getdate()
where(商品编码=@商品编码)
end
else--库存表里不存在商品信息
insert into 库存表--插入进货信息
(商品编码,商品进价,库存数量,入库时间)
values(@商品编码,@进货价,@进货数量,getdate())
end 运行结果 测试代码 insert into Purchase values(JH000001,iphone4,apple,4500,5000,100,2012-9-1,1001)
select * from 库存表
select * from Purchase--查看表信息 测试结果 测试代码 insert into Purchase values(JH000001,iphone4,apple,4800,5300,100,2012-10-1,1001) 测试结果 4、创建一个触发器。向销售表中插入一条记录时,这个触发器将更新库存表。库存量为原有库存量减去销售数量。如果库存数量少于10,则显示”该商品库存数量少于10,请及时进货”;如果库存不足,则显示:“‘库存不足’”。
程序代码 crecreate trigger tri_Sell
on Sell
after insert
as
begin
declare @售出数量int,@库存数量int,@售商品编码char(8)
select @售出数量=数量,@售商品编码= 商品编号from inserted
您可能关注的文档
- 生态系统的结构 教案.doc
- 马克思主义哲学原理复习提纲.doc
- 生物科技有限公司新建3000ta糠醛生产装置安全预评价报告.doc
- 感恩老师主题班会.ppt
- 《珍爱生命-安全出行》课件.ppt
- 钢筋及连接课件.ppt
- 钢筋连接方式.ppt
- 毛概重点复习资料.doc
- 毛特论课后思考题答案.doc
- 岗位说明书培训及岗位评估介绍.ppt
- 急性肾功能衰竭综合征的肾血管介入性诊治4例报告并文献复习.docx
- 基于血流动力学、镇痛效果分析右美托咪定用于老年患者髋部骨折术的效果.docx
- 价格打骨折 小心统筹车险.docx
- 交通伤导致骨盆骨折合并多发损伤患者一体化救治体系的效果研究.docx
- 多层螺旋CT与DR片诊断肋骨骨折的临床分析.docx
- 儿童肱骨髁上骨折后尺神经损伤恢复的预测因素分析.docx
- 康复联合舒适护理在手骨折患者中的应用及对其依从性的影响.docx
- 机器人辅助老年股骨粗隆间骨折内固定术后康复.docx
- 超声辅助定位在老年髋部骨折患者椎管内麻醉中的应用:前瞻性随机对照研究.docx
- 两岸《经济日报》全面合作拉开帷幕.docx
原创力文档


文档评论(0)