使用存储过程调用事物

来源:互联网 发布:淘宝卖家达人 编辑:程序博客网 时间:2024/05/20 23:32

--创建调用事物的存贮过程
create procedure proc_aboutOrder
 @result int output,--受影响的行数,输出参数
 @orderCode varchar(50),--流水账号
 @point int,--积分
 @sum money,--消费金额
 @count int,--数量
 @u_id int,--用户id
 @d_id int,--服装编号
 @r_name varchar(20),--收货人姓名
 @r_phone varchar(13),--电话
 @r_Email varchar(200),--Email
 @r_address varchar(500),--地址
 @r_postCode varchar(10),--邮政编码
 @r_method varchar(50)--送货方式
 
as
 begin
  begin Transaction--开始事物
   declare @error int
   set @error=0
   if exists(select * from orderForm where o_id=@orderCode)
    begin
     insert into orderFormList values(@orderCode,@d_id,@count)
     set @error=@error+@@error
    end
   else
    begin
     insert into orderForm values(@orderCode,@u_id,@sum,getdate(),4)
     set @error=@error+@@error
     insert into refer values(@orderCode,@r_name,@r_phone,@r_Email,@r_address,@r_postCode,@r_method)
     set @error=@error+@@error
     insert into orderFormList values(@orderCode,@d_id,@count)
     set @error=@error+@@error
     update userInfo set u_point=u_point-@point where u_id=@u_id
     set @error=@error+@@error
    end
   set @result=@error
  if @error>0
   rollback Transaction--回滚事物
  else
   commit Transaction--提交事物
 end
go

 

以上一段代码,可以在C#或java中去调用