首先,我知道这个问题没有得到回答,因为 OP 真正想做的不是增加身份列
我有一个当前种子值为 x 的标识列,我想将其重新设置为 x+1(即我希望我的标识列直接从 x 跳转到 x+2。
我知道我可以使用以下命令来做到这一点
create procedure IncrementSeedValue
(
@TableName varchar(255),
@IncrementValue int
)
as
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
BEGIN TRANSACTION;
declare @v bigint
select @v = IDENT_CURRENT(@TableName)+@IncrementValue
DBCC CHECKIDENT (@TableName, RESEED, @v )
COMMIT TRANSACTION;
go
但是,我有几个问题:
- 这里的隔离级别“可序列化”是否足够?
- 如果我使用 SQL Server 镜像,这会导致问题吗
- 还有其他我应该注意的陷阱吗?