Voir cette réponse Récupérer l'ID de ligne inséré dans SQL
En bref, il n'y a pas de moyen de faire cela entre les bases de données, à l'exception de MAX(ID) - mais ce n'est pas un résultat garanti et comporte de nombreux pièges, par exemple
- d'autres insertions peuvent intervenir entre la dernière insertion et la requête maximale
- ne peut pas être utilisé avec des tables de transactions élevées (max émettra un verrou de lecture, les méthodes spécifiques à rdbms ne lisent aucune table)
La norme ANSI relative à l'identité/numéro automatique/auto_increment/séquences est apparue pour la première fois dans SQL:2003 en attente de mise en œuvre par tous les principaux SGBDR. Il ressemblera très probablement aux séquences Oracle/PostgreSQL.
Un autre changement dans SQL:2003 est la OUTPUT USING CLAUSE
mais il y a très peu d'informations à ce sujet. Sybase et SQL Server ont fait des choses différentes avec lui, donc on ne sait pas encore comment cela se déroulera. SQL Server l'implémente comme
INSERT INTO TBL(..)
OUTPUT inserted.identity_col
INTO @sometablevar
VALUES(..)