D'abord, je suis au courant de this question qui ne se répondit que ce que l'OP a été vraiment essayer de faire was'nt incrémenter une colonne d'identitéComment puis-je incrémenter une colonne d'identité sans insérer de valeur?
J'ai une colonne d'identité avec une graine en cours valeur de x, et je voudrais ressemer à x + 1 (par exemple, je veux que ma colonne d'identité pour passer directement de x à x + 2.
Je sais que je peux le faire en utilisant le command suivant
create procedure IncrementSeedValue
(
@TableName varchar(255),
@IncrementValue int
)
as
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
BEGIN TRANSACTION;
declare @v bigint
select @v = IDENT_CURRENT(@TableName)[email protected]
DBCC CHECKIDENT (@TableName, RESEED, @v)
COMMIT TRANSACTION;
go
Howeve r, j'ai quelques questions:
- Le niveau d'isolement "sérialisable" est-il adéquat ici?
- Serait-ce conduire à un problème si j'utilise la mise en miroir SQL Server
- Y at-il d'autres pièges que je devrais être au courant?
Par transaction ...? – Dirk