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
A voir également:

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 5
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
Rejoignez-nous