ALTER PROCEDURE dbo.PR_AddDPT
@dptName varchar(50),
@dptWorker int
AS
SET NOCOUNT ON
begin tran --事务处理开始
declare @insertError int,@updateError int
insert into [dptInfo] values(@dptName,@dptWorker) --插入语句操作正常
select @insertError=@@error
update [dptInfo] set dptname='fantasy' where id=100 --更新语句由于id=100的记录不存在导致操作异常,因此事务会回滚到事务开始之前的位置,即前面插入的那条记录会消失
select @updateError=@@error
if(@insertError=0 and @updateError=0) --如果事务顺利完成没有异常
commit tran --事务完成
else --如果有异常
rollback tran --事务回滚
SET NOCOUNT OFF
RETURN
@dptName varchar(50),
@dptWorker int
AS
SET NOCOUNT ON
begin tran --事务处理开始
declare @insertError int,@updateError int
insert into [dptInfo] values(@dptName,@dptWorker) --插入语句操作正常
select @insertError=@@error
update [dptInfo] set dptname='fantasy' where id=100 --更新语句由于id=100的记录不存在导致操作异常,因此事务会回滚到事务开始之前的位置,即前面插入的那条记录会消失
select @updateError=@@error
if(@insertError=0 and @updateError=0) --如果事务顺利完成没有异常
commit tran --事务完成
else --如果有异常
rollback tran --事务回滚
SET NOCOUNT OFF
RETURN