• SQL Server save transaction


    SQL Server save transaction

    准备:

      create table Nums(X int);

      目的:只向表中插入一行。

    -------------------------------------------------------------------------------------------------------------------------------------

      begin transaction tran_A -- 最好是为事务定义一个名字。

        insert into Nums(X) values(9);

        save transaction save_tran; --定义一个事务的保存点、当要回滚事务时,可以回滚到这里。

        insert into Nums(X) values(4),(3),(2),(1);

        rollback transaction save_tran;--回滚事务到保存点

      commit transaction tran_A;-- 提交事务。
      go

      

     

    USE [warm]
    GO

    /****** Object: StoredProcedure [dbo].[P_GetYID] Script Date: 06/15/2019 20:19:45 ******/
    SET ANSI_NULLS ON
    GO

    SET QUOTED_IDENTIFIER ON
    GO

    create PROCEDURE [dbo].[P_GetYID]
    @VouID int output
    AS
    BEGIN
    declare @TC int
    select @TC = @@TRANCOUNT
    if @TC = 0
    begin transaction
    else
    save transaction T_BAK
    -------------------------------------------------
    update T_VouID_Bank with(tablockx) set I_VouID = I_VouID + 1,@VouID = I_VouID
    if @@ROWCOUNT <> 1 or @@ERROR <> 0 goto ERR
    -------------------------------------------------
    if @TC = 0
    commit transaction
    return 0
    ERR:
    if @TC = 0
    rollback transaction
    else
    rollback transaction T_BAK
    return 1
    END
    GO

     
  • 相关阅读:
    支付包接口支付缓存问题
    vue多层弹框时存在遮挡应如何解决
    P1520 因式分解 题解
    观测概率为多维高斯分布时对两(多)类MAP决策边界的分析
    关于因数个数的估计
    使用ITTP_Stream显示图像
    linux某个目录没有可执行权限
    linux ldd命令
    注意力机制
    transformer
  • 原文地址:https://www.cnblogs.com/bwdblogs/p/11028755.html
Copyright © 2020-2023  润新知