USE [MyBookShop]
GO
/****** Object:  StoredProcedure [dbo].[Pro_test]    Script Date: 11/15/2012 13:59:11 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER proc [dbo].[Pro_test]
@shuliang float,
@name text
asdeclare @sem floatbegin tranUPDATE TEST SET SHULIANG=SHULIANG-@shuliang WHERE [int]=1
SET @sem+=@sem+@@ERROR
UPDATE TEST SET SHULIANG=SHULIANG+@shuliang where [int]=2
SET @sem+=@sem+@@ERRORIF (@sem<>0)
BEGIN
PRINT('事物处理失败,事物回滚了@')
rollback TRAN
END
else
begin
print('处理成功!')
commit tran
end
exec pro_test 5000,''
------------------------------------------------------------
消息 547,级别 16,状态 0,过程 Pro_test,第 10 行
UPDATE 语句与 CHECK 约束"CK_1"冲突。该冲突发生于数据库"MyBookShop",表"dbo.test", column 'shuliang'。
语句已终止。(1 行受影响)
处理成功!
------------------------------------------------------------
@@error 为啥不累积,不累加