存储过程和事务创建

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了存储过程和事务创建相关的知识,希望对你有一定的参考价值。

/*alter 修改*/create proc InsertOrder
    @OrderCode nvarchar(50),
    @CusId int
as
begin
    begin tran--开启事务
    begin try
        --计算总金额
        declare @totalPri decimal(8,2)
        select @totalPri=sum(price*[count]) from carinfo where cusid=@CusId
        --向主表插入数据
        insert into ordermaster(ocode,odate,oprice,cusid) values(@OrderCode,GETDATE(),@totalPri,@CusId)

        --向从表插入数据
        insert into orderslave(bid,bcount,ordercode) select bookid,[count],@OrderCode from carinfo where cusid=@CusId

        --删除购物车中的数据
        delete from carInfo where CusId=@CusId

        commit tran--提交事务
    end try

    begin catch
        rollback tran--一旦发生异常,回滚事务
    end catch
end

创建存储过程,并用事务提交订单

以上是关于存储过程和事务创建的主要内容,如果未能解决你的问题,请参考以下文章

事务、存储过程和 PDO

mysql-高级功能(触发器存储过程视图事务)

在一个事务中调用多个 SQL Server 存储过程

SQL Server 2005 事务复制无法发布包含索引创建的存储过程

MySQl之TCL(数据事务语言)

oracle存储过程中临时表的使用,该怎么处理