我拥有一个SQL Server 2012序列对象:
/****** Create Sequence Object ******/
CREATE SEQUENCE TestSeq
START WITH 1
INCREMENT BY 1;
我有一个存储过程,它在事务内运行一些查询:
BEGIN TRAN
SELECT NEXT VALUE FOR dbo.TestSeq
<here all the query update code......>
ROLLBACK TRAN
如果交易失败,则所有更新都会回滚,没有问题,但是序列号不会回滚,我猜是因为它超出了事务的范围。对于处理此类情况,有何线索吗?
Alter SEQUENCE TestSeq RESTART WITH @var INCREMENT BY 1;
- rs.