まず、OPが実際にやろうとしていたのはID列をインクリメントしていなかったため、回答されなかったこの質問を認識しています
現在のシード値が x の ID 列があり、それを x+1 に再シードしたいと考えています (つまり、ID 列を 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 ミラーリングを使用している場合、問題が発生しますか?
- 私が知っておくべき他の落とし穴はありますか?