Bonjour,
j'ai des tables avec un identifiant autoincrémenté. Lorsque j'ajoute un enregistrement, je fais la requête suivante pour connaitre la dernière valeur du champ autoincrémenté :
SELECT IDENT_CURRENT('[MATABLE]') AS ID ;
De cette façon, mon programme a bien les mêmes identifiant que la base de donnée.
Le problème est qu'apparemment, lorsque la table n'a jamais eut d'enregistrement, cette requête renvoie la valeur non pas du champs autoincrémenté, mais celle du SEED (la valeur initiale du champ autoincrémenté). Dans mon cas, le SEED est à 1.
Déroulement :
* La table n'a jamais eut d'enregistrement.
* Préparation d'un ajout : SELECT IDENT_CURRENT('[MATABLE]') AS ID ;
* La requête renvoie 1 (SEED)
* Mon programme stock l'identifiant 1
* Préparation d'un ajout : SELECT IDENT_CURRENT('[MATABLE]') AS ID ;
* La requête renvoie 1 (dernière valeur du champ autoincrémenté)
* ??? problème car la valeur 1 appartient déjà à un enregistrement.
* Préparation d'un ajout : SELECT IDENT_CURRENT('[MATABLE]') AS ID ;
* La requête renvoie 2 (dernière valeur du champ autoincrémenté)
* Mon programme stock l'identifiant 2
...
J'espère que vous avez compris mon problème.
Merci.
Partager