事务定义(SQL SERVER 2008)

一、 实验题目:事务定义
二、 实验目的:掌握事务的定义、提交、回滚等命令,通过这些命令的使用进一步理解事务的概念和性质。
题目六:
药品(编号,名称,价格,厂商)
处方(药品编号,数量,医生编号)
医生 (编号,姓名,科室,职称)
定义一个事务,完成下列步骤:
1统计药品平均价格,若平均价格小于20,给每种药增加一元,直至其平均价格超过20(每增一次显示一次)。
2显示所有药品名称 、价格。
3 若有药品超过50元,取消上述操作。
4提交后显示药品价格。

定义事务:

begin transaction ManageMedical

declare @avg_price decimal(18,2);
select @avg_price = convert(decimal(18,2),AVG(价格)) from 药品;
print'初始平均价格为:'
print @avg_price

while @avg_price < 20
begin
update 
药品 set 价格 = 价格 + 1
select @avg_price = convert(decimal(18,2),AVG(价格)) from 药品;
print'当前平均价格为:'
print @avg_price
end

select 名称,价格 from 药品

if exists(select * from 药品 where 价格 > 50)
begin
rollback transaction ManageMedical;
print '有药品价格超过50元,事务已回滚'
end
else
begin
commit transaction ManageMedical;
print '没有药品价格超过50元,事务已提交'
end

select 名称,价格 from 药品;
发布了42 篇原创文章 · 获赞 30 · 访问量 7190

猜你喜欢

转载自blog.csdn.net/Mr____Cheng/article/details/103762728