J'incrémente la valeur alphanumérique de 1 pour le produit en utilisant la procédure stockée. Ma procédure incrémentant les valeurs jusqu'à 10 enregistrements, une fois qu'il atteint 10e dire pour PRD0010 ... pas plus son incrémentation ... Cependant, le problème est qu'il répète les mêmes valeurs PRD0010 .. pour chaque appel SP.Pourquoi la génération d'ID naturelle dans ce processus stocké SQL crée-t-elle des doublons?
Quelle est la cause de ceci?
create table tblProduct
(
id varchar(15)
)
insert into tblProduct(id)values('PRD00')
create procedure spInsertInProduct
AS
Begin
DECLARE @PId VARCHAR(15)
DECLARE @NId INT
DECLARE @COUNTER INT
SET @PId = 'PRD00'
SET @COUNTER = 0
SELECT @NId = cast(substring(MAX(id), 4, len(MAX(id))) as int)
FROM tblProduct group by left(id, 3) order by left(id, 3)
--here increse the vlaue to numeric id by 1
SET @NId = @NId + 1
--GENERATE ACTUAL APHANUMERIC ID HERE
SET @PId = @PId + cast(@NId AS VARCHAR)
INSERT INTO tblProduct(id)values (@PId)
END
astander-> exactement vous avez raison ... ses fine..thanks travail ur réponse – Jims
Un autre problème est que cette technique ne produira pas des identifiants uniques avec insertions concurrentes. –