Recupéré l'id d'un INSERT

Résolu
Bowen123
Messages postés
32
Date d'inscription
vendredi 17 décembre 2004
Statut
Membre
Dernière intervention
21 septembre 2011
- 29 mars 2005 à 16:21
Chrissv37
Messages postés
2
Date d'inscription
mercredi 18 mai 2022
Statut
Membre
Dernière intervention
20 mai 2022
- 18 mai 2022 à 14:49
Sous SQL Server,

Je souhaite récupéré mon id (clef primaire auto incrémenté) immédiatement apres un insert.

Y a til une solution autre que de refaire un select ?

merci

3 réponses

cs_fabrice69
Messages postés
1765
Date d'inscription
jeudi 12 octobre 2000
Statut
Membre
Dernière intervention
11 décembre 2013
6
30 mars 2005 à 11:05
Ca se fait juste après l'insert en récupérant la variable systeme qui renvoie le dernier ID entré dans la table, voila la copie de la MSDN la dessus :


[mk:@MSITStore:C:\Program%20Files\Microsoft%20SQL%20Server\80\Tools\Books\tsqlref.chm::/ts_ia-iz_82i1.htm IDENT_CURRENT].


Examples

This example inserts a row into a table with an identity column and uses @@IDENTITY to display the identity value used in the new row.

INSERT INTO jobs (job_desc,min_lvl,max_lvl)
VALUES ('Accountant',12,125)
SELECT @@IDENTITY AS 'Identity'


Romelard Fabrice (Alias F___)
2
palm56
Messages postés
8
Date d'inscription
mercredi 26 février 2003
Statut
Membre
Dernière intervention
20 juin 2007
2
26 mai 2005 à 15:39
Cependant cela peut être relativement dangereux dans le cas où la base de données est très exploitée.

Si beaucoup d'insertion sont faites dans la BDD (quelque soit la table d'ailleurs, car @@identity contient le dernier id auto créé dans la BDD et non dans une table), tu peux récupérer le mauvais ID.
2
Chrissv37
Messages postés
2
Date d'inscription
mercredi 18 mai 2022
Statut
Membre
Dernière intervention
20 mai 2022

18 mai 2022 à 14:49
Bonjour,

Ce message est un peu ancien, mais étant donné que je suis tombé dessus et que cela ne fonctionne pas sur SQLite par exemple, voici une alternative qui devrait fonctionner partout:

SELECT MAX(id) AS 'ID' FROM LaTable;


Cela va vous retourner logiquement le dernier ID affecté à la colonne id, si elle est bien sûr en auto Incrément.
0