[.NET] ID auto incrémenté après INSERT

Atmaweapon Messages postés 50 Date d'inscription dimanche 28 décembre 2003 Statut Membre Dernière intervention 11 avril 2006 - 16 mai 2005 à 15:06
dibouched Messages postés 219 Date d'inscription samedi 21 août 2004 Statut Membre Dernière intervention 17 juillet 2007 - 16 mai 2005 à 16:05
Bonjour à tous !



ma question est "classique" (mais je n'ai pas réussi a la "trouver"
dans les question du forum et codes sources avec le moteur de
recherche.... donc je pose ma question) : comment récupérer
"proprement" une clef auto incrémentée après une insertion dans ma bdd.



Quand je dis "proprement", cela veut dire "sans risque de conflit" (j'ai de la conccurrence sur ma bdd).



J'aimerais -si possible- une(des) proposition(s) exploitables aussi bien sous SQLServer que sous MySQL ....

C'est possible de faire ca en Java... je suppose que ca doit l'etre en (visual) c#



Merci d'avance :)

6 réponses

cs_Crazyht Messages postés 1522 Date d'inscription mardi 18 décembre 2001 Statut Membre Dernière intervention 21 août 2010 8
16 mai 2005 à 15:19
La solution la plus simple (pour SQLServ) est de renvoyer dans un
parametre (OUTPUT) de la storeproc d'insertion la valeur de
Scope_identity ou @@Identity. Je suppose que le meme genre de fonction
est proposée en MySQL.

A++

Crazyht
MVP Visual C#.NET

[Admin Codes-Sources]
[Membre Developer-Association]
0
Atmaweapon Messages postés 50 Date d'inscription dimanche 28 décembre 2003 Statut Membre Dernière intervention 11 avril 2006 1
16 mai 2005 à 15:26
mm... deja, le mot "DECLARE" n'existe pas en mysql .... donc je ne
pense pas qu'une méthode "générique" (si elle existe...) puisse se
faire de cette maniere... v_v
0
dibouched Messages postés 219 Date d'inscription samedi 21 août 2004 Statut Membre Dernière intervention 17 juillet 2007 2
16 mai 2005 à 15:31
pour moi
si j'ai bien compris la question
c'est de faire du Select max()





DiBou
email:dibouched@yahoo.fr
0
Atmaweapon Messages postés 50 Date d'inscription dimanche 28 décembre 2003 Statut Membre Dernière intervention 11 avril 2006 1
16 mai 2005 à 15:32
Apres quelques recherches sur internet, en MySQL, on peut faire

SELECT LAST_INSERT_ID();



pour récupérer cette variable... donc c'est bon... je devrais pouvoir me débrouiller avec ca et @@identity



Merci en tous cas :)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
16 mai 2005 à 15:56
En aucun cas ne faire de SELECT Max() pour ce genre de problème Dibou !
imagine 2 insertions par 2 utilisateurs simultanément, ton SELECT Max()
a la suite peut te donner (et te donenra) un mauvais resultat.

Mx
0
dibouched Messages postés 219 Date d'inscription samedi 21 août 2004 Statut Membre Dernière intervention 17 juillet 2007 2
16 mai 2005 à 16:05
Ah oui merci j'ai bien compris ca quand


Atmaweapon a ecrit SELECT LAST_INSERT_ID(); qu'il parle des accées simultannée
ok merci beacoup



DiBou
email:dibouched@yahoo.fr
0
Rejoignez-nous