[SQL Server] Retrouver l'ID du dernier INSERT
Bonjour,
J'utilise SQL Server 2005, je peux insérer des données dans ma BD sans problème. Seulement, j'aimerais pouvoir récupérer l'ID (auto-incrémenté dans la BD) du dernier INSERT effectué par le programme.
J'ai déjà essayé d'utiliser @@IDENTITY ou SELECT MAX(Id) FROM MaTable par exemple, mais à chaque fois, ces solutions me renvoient 0, 1 ou bien rien du tout.
De même si je créé un autre objet QSqlQuery dans le if.
Table dbo.Vehicule (Id_Vehicule, immatriculatio, tare)
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| int AccesBD::insertVehicule(QString immatriculation, float tare)
{
int newId = -1;
QSqlQuery query;
if(query.exec(QString("INSERT INTO [dbo].[Vehicule] VALUES('%1','%2')").arg(immatriculation).arg(tare)))
{
QSqlQuery query("SELECT MAX(Id_vehicule) FROM [dbo].[Vehicule]");
query.next();
newId = query.value(0).toInt();
}
return newId;
} |
Si quelqu'un a une idée, parce qu'un peu partout, je vois parler de @@IDENTITY ou SCOPE_IDENTITY(), mais rien ne fonctionne comme désiré.