select @EquipmentID=inserted.设备编号,@LaboratoryID=inserted.实验室编号,@EquipmentName=inserted.设备名称,@Model=inserted.型号,@type=inserted.类别,@guige=inserted.规格,@count=inserted.数量,@buyerID=inserted.购买人ID,@maker=inserted.生产厂家 from inserted
if not exists(select * from 用户 where @buyerID=用户ID )
begin
print('实验室查无此人')
rollback
end
else
begin
if not exists(select * from 设备信息 where @EquipmentID=设备编号)
begin
insert into 设备信息(设备编号,设备名称,型号,类别,规格,总数量,当前剩余数量,生产厂家) values(@EquipmentID,@EquipmentName,@Model,@type,@guige,@count,@count,@maker)
insert into 设备状态 values(@EquipmentID,@LaboratoryID,'正常')
end
else
begin
update 设备信息 set 总数量=总数量+@count,当前剩余数量=当前剩余数量+@count where @EquipmentID=设备编号
end
end
/* select @pre_count=count(*) from 设备状态 where @EquipmentID=设备状态.设备编号
set @now_count=@pre_count+@count
set @pre_count=@pre_count+1
while @pre_count<=@now_count
begin
insert into 设备状态(设备编号,实验室编号) values(@EquipmentID,@LaboratoryID)
set @pre_count = @pre_count+1
end
*/
insert into 购买设备信息(设备编号,实验室编号,设备名称,型号,类别,购买日期,规格,数量,单价,购买人ID,生产厂家) select 设备编号,实验室编号,设备名称,型号,类别,购买日期,规格,数量,单价,购买人ID,生产厂家 from inserted
select distinct 购买ID,购买设备信息.设备编号,购买设备信息.实验室编号,购买设备信息.设备名称,购买设备信息.型号,购买设备信息.类别,购买日期,购买设备信息.规格,数量,单价,购买人ID,用户名, 购买设备信息.生产厂家,总数量,当前剩余数量,设备情况 from 购买设备信息,设备信息,设备状态,用户 where 用户ID=@buyerID
end
Go
drop trigger if exists 报修操作
Go
create trigger 报修操作
on 报修
after insert
as
begin
declare @EquipmentID as char(8)
declare @EquipmentID2 as char(8)
select @EquipmentID=inserted.设备编号,@EquipmentID2=inserted.实验室编号 from inserted
update 设备状态 set 设备情况='维修' where @EquipmentID=设备编号 and @EquipmentID2=实验室编号
update 设备信息 set 当前剩余数量=当前剩余数量-1 where @EquipmentID=设备编号
select * from 报修
end
Go
--select * from 报修
--select * from 报废
--select * from 设备信息
--select * from 设备详细编号
drop trigger if exists 报废操作
Go
create trigger 报废操作
on 报废
after insert
as
begin
declare @EquipmentID as char(8)
declare @EquipmentID2 as char(8)
declare @DesoryeerID as char(8)
select @EquipmentID=inserted.设备编号,@EquipmentID2=inserted.实验室编号,@DesoryeerID=inserted.报废ID from inserted
if not exists(select * from 用户 where @DesoryeerID=用户ID )
begin
print('实验室查无此人')
rollback
end
if '正常'=(select 设备情况 from 设备状态 where @EquipmentID=设备编号 and @EquipmentID2=实验室编号)
begin
update 设备信息 set 当前剩余数量=当前剩余数量-1 where @EquipmentID=设备编号
end
update 设备状态 set 设备情况='报废' where @EquipmentID=设备编号 and @EquipmentID2=实验室编号
select * from 设备信息 where @EquipmentID=设备编号
end
Go
/*
create trigger 设备借用
on 设备状态
after update
as
begin
declare @EquipmentID as char(8)
declare @EquipmentState as nvarchar(5)
select @EquipmentID=inserted.设备编号,@EquipmentState=inserted.设备情况 from inserted
if @EquipmentState='使用中'
begin
update 设备信息 set 当前剩余数量=当前剩余数量-1 where @EquipmentID=设备编号
end
if @EquipmentState='正常'
begin
update 设备信息 set 当前剩余数量=当前剩余数量+1 where @EquipmentID=设备编号
end
end
Go
*/
drop trigger if exists 修理完成
Go
create trigger 修理完成
on 报修
after update
as
begin
declare @EquipmentID as char(8)--大号
declare @EquipemntNo as char(8)--小号
select @EquipmentID=inserted.设备编号,@EquipemntNo=inserted.实验室编号 from inserted
update 设备信息 set 当前剩余数量=当前剩余数量+1 where @EquipmentID=设备编号
update 设备状态 set 设备情况='正常' where @EquipmentID=设备编号 and @EquipemntNo=实验室编号
select * from 报修 where @EquipmentID=设备编号 and @EquipemntNo=实验室编号
select * from 设备状态 where @EquipmentID=设备编号 and @EquipemntNo=实验室编号
end
Go
drop trigger if exists insert_用户
Go
create trigger insert_用户 on 用户 after insert as
select * from 用户
Go
drop trigger if exists insert_实验室
Go
create trigger insert_实验室 on 实验室 after insert as
select * from 实验室
Go
drop trigger if exists insert_设备信息
Go
create trigger insert_设备信息 on 设备信息 after insert as
select * from 设备信息
Go
drop trigger if exists insert_设备信息1
Go
create trigger insert_设备信息1 on 购买设备信息 after insert as
select * from 设备信息
Go
select * from 设备状态 where 设备情况='正常'
update 报修 set 维修日期=GETDATE(),维修人员='Lucy',维修费用='30',是否修复='是' where 设备编号='2' and 实验室编号='5'
update 报修 set 维修日期=GETDATE(),维修人员='Tom',维修费用='100',是否修复='是' where 设备编号='3' and 实验室编号='2'