create table gongying
(
gcode int identity(1001,1) primary key,
gname varchar(50),
gtel varchar(50)
)
go
create table cangku1
(
ccode int primary key,--10001
cname varchar(50),
cprice decimal (18,2),
cshu int ,
cgcode int
)
go
create table piao
(
pcode int identity(1000001,1),
pname varchar(50),
pprice decimal(18,2),
pshu int,
pzong decimal (18,2)
)
go
insert into gongying values (‘海尔‘,‘0211-7589654‘)
insert into gongying values (‘海信‘,‘0311-6556654‘)
insert into gongying values (‘恒佳‘,‘0531-3589654‘)
insert into gongying values (‘艾玛‘,‘1211-4589654‘)
insert into gongying values (‘富士康‘,‘0811-12589654‘)
go
insert into cangku1 values (10001.,‘电视‘,1288,35,1001)
insert into cangku1 values (10002.,‘冰箱‘,888,20,1002)
insert into cangku1 values (10003.,‘洗衣机‘,569,30,1003)
insert into cangku1 values (10004.,‘电脑‘,2608,40,1004)
insert into cangku1 values (10005.,‘笔记本‘,3400,48,1005)
go
create proc oeproc
@code int,
@name varchar(50),
@price decimal(18,2),
@shu int,
@gcode int
as
declare @count int
select @count=COUNT(*)from cangku1 where ccode=@code
if @count=1--有此商品
begin
if @shu>=0--进货
begin
update cangku1 set cshu=cshu+@shu where ccode =@code
end
else--出货
begin
declare @sum int
select @sum=cshu from cangku1 where ccode=@code
if @sum+@shu>=0
begin
update cangku1 set cshu=cshu+@shu where ccode =@code
insert into piao values (@name,@price,abs (@shu),ABS(@price*@shu))
end
else
begin
print ‘货物不够,请及时补充‘
end
end
end
else--无此商品
begin
if @shu>=0--进货
begin
insert into cangku1 values(@code,@name,@price,@shu,@gcode)
end
else
begin
print ‘没有此货物,及时补充‘
end
end
go
select * from gongying
select * from cangku1
--执行
--进货,没有此产品
exec oeproc 1006,‘手机‘,688,20,1002
--进货,有此产品
exec oeproc 1006,‘手机‘,688,10,1002
--出货,有此产品,货物不够
exec oeproc 1006,‘手机‘,688,-50,1002
--出货,有此产品,且充足
exec oeproc 1006,‘手机‘,688,-10,1002
--出货,没有此产品
exec oeproc 10007,‘空调‘,1088,10,1001
原文:http://www.cnblogs.com/dulovexin/p/4995042.html