Vedi questa risposta Recupera l'ID riga inserito in SQL
In breve, non esiste un modo per eseguire questa operazione su più database, ad eccezione di MAX(ID), ma non è un risultato garantito e presenta molte insidie, ad es.
- altri inserimenti possono trovarsi tra l'ultimo inserimento e la query massima
- non può essere utilizzato con tabelle di transazione elevate (max emetterà un blocco di lettura, i metodi specifici di rdbms non leggono da nessuna tabella)
Lo standard ANSI relativo a identity/autonumber/auto_increment/sequences è apparso per la prima volta in SQL:2003 in attesa di attuazione da parte di tutti i principali RDBMS. Molto probabilmente assomiglierà a sequenze Oracle/PostgreSQL.
Un'altra modifica in SQL:2003 è OUTPUT USING CLAUSE
ma ci sono pochissime informazioni a riguardo. Sybase e SQL Server hanno fatto cose diverse con esso, quindi non è ancora chiaro come andrà a finire. SQL Server lo implementa come
INSERT INTO TBL(..)
OUTPUT inserted.identity_col
INTO @sometablevar
VALUES(..)