码迷,mamicode.com
首页 > 数据库 > 详细

SQL Server事务回滚对自增键的影响

时间:2019-06-20 17:34:42      阅读:190      评论:0      收藏:0      [点我收藏+]

标签:rollback   char   参数   insert   bsp   har   异常   catch   llb   

SQL Server事务回滚时是删除原先插入导致的自增值,也就是回滚之前你你插入一条数据导致自增键加1,回滚之后还是加1的状态

 

--如果获取当前操作最后插入的identity列的值:
select @@IDENTITY
--如果要获取某表的最后的identity列的值:
select IDENT_CURRENT(‘表名‘)

--如果要模拟抛出异常可以用RAISERROR 

--RAISERROR(‘错误的描述‘,错误的严重级别代码,错误的标识,错误的描述中的参数的值(这个可以是多个),一些其它参数)

--PRINT ‘出现异常,错误编号:‘ + convert(varchar,error_number()) + ‘,错误消息:‘ + error_message()

BEGIN TRAN Tran_Test;--开始事务
DECLARE @tran_error INT;
SET @tran_error = 0;
BEGIN TRY
INSERT INTO Table
RAISERROR (‘引用单据已被修改,操作失败!‘, 16, 1);
END TRY
BEGIN CATCH
PRINT ‘出现异常,错误编号:‘ + CONVERT(VARCHAR, ERROR_NUMBER()) + ‘,错误消息:‘
+ ERROR_MESSAGE();
SET @tran_error = @tran_error + 1;
END CATCH;
IF ( @tran_error > 0 )
BEGIN
--执行出错,回滚事务
ROLLBACK TRAN;
PRINT ‘!‘;
END;
ELSE
BEGIN
--没有异常,提交事务
COMMIT TRAN;
PRINT ‘!‘;
END;

SELECT SCOPE_IDENTITY();
SELECT @@IDENTITY;

SQL Server事务回滚对自增键的影响

标签:rollback   char   参数   insert   bsp   har   异常   catch   llb   

原文地址:https://www.cnblogs.com/wangboke/p/11059647.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!