sql存储过程中启用事务
---还书存储过程
use LibraryDB
go
if exists(select * from sysobjects where name='usp_ReturnBook')
drop procedure usp_ReturnBook
go
create procedure usp_ReturnBook
@BorrowDetailId int,
@ReturnCount int,
@ReturnDate datetime,
@AdminName_R varchar(20)
as
declare @errorSum int =0
begin transaction
begin
--插入还书数据
insert into ReturnBook (BorrowDetailId, ReturnCount, ReturnDate, AdminName_R)values(@BorrowDetailId, @ReturnCount, @ReturnDate, @AdminName_R)
set @errorSum +=@@ERROR
--更新还书总数,未还书总数
update BorrowDetail set ReturnCount =+@ReturnCount,NonReturnCount -=@ReturnCount where BorrowDetailId =@BorrowDetailId
set @errorSum +=@@ERROR
if (@errorSum>0)
rollback transaction
else
commit transaction
end
go