Récupérer l’id du dernier élément inséré, dans une seule requête avec sql server
SQL Server propose un mot clé très utile: OUTPUT
Il permet de récupérer un id dans une requête d’insertion et de l’insérer dans une autre table, tout cela dans la même requête.
Exemple avec la bd AdventureWorks2012 :
USE AdventureWorks2012;
GO
DECLARE @MyTableVar table( NewScrapReasonID smallint, Name varchar(50), ModifiedDate datetime);
INSERT Production.ScrapReason
OUTPUT INSERTED.ScrapReasonID, INSERTED.Name, INSERTED.ModifiedDate INTO @MyTableVar VALUES (N’Operator error’, GETDATE());
SELECT NewScrapReasonID, Name, ModifiedDate FROM @MyTableVar; — Display the result set of the table. SELECT ScrapReasonID, Name, ModifiedDate FROM Production.ScrapReason; GO
Plus d’informations ici : https://docs.microsoft.com/en-us/sql/t-sql/queries/output-clause-transact-sql?view=sql-server-2017