Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : recupéré l'id d'un INSERT [ Archives / Problème avec une requête ] (Bowen123)

mardi 29 mars 2005 à 16:21:46 | recupéré l'id d'un INSERT

Bowen123

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

mercredi 30 mars 2005 à 11:05:09 | Re : recupéré l'id d'un INSERT

fabrice69

Administrateur CodeS-SourceS
Réponse acceptée !
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 :

@@IDENTITY

Returns the last-inserted identity value.

Syntax

@@IDENTITY

Return Types

numeric

Remarks

After an INSERT, SELECT INTO, or bulk copy statement completes, @@IDENTITY contains the last identity value generated by the statement. If the statement did not affect any tables with identity columns, @@IDENTITY returns NULL. If multiple rows are inserted, generating multiple identity values, @@IDENTITY returns the last identity value generated. If the statement fires one or more triggers that perform inserts that generate identity values, calling @@IDENTITY immediately after the statement returns the last identity value generated by the triggers. The @@IDENTITY value does not revert to a previous setting if the INSERT or SELECT INTO statement or bulk copy fails, or if the transaction is rolled back.

@@IDENTITY, SCOPE_IDENTITY, and IDENT_CURRENT are similar functions in that they return the last value inserted into the IDENTITY column of a table.

@@IDENTITY and SCOPE_IDENTITY will return the last identity value generated in any table in the current session. However, SCOPE_IDENTITY returns the value only within the current scope; @@IDENTITY is not limited to a specific scope.

IDENT_CURRENT is not limited by scope and session; it is limited to a specified table. IDENT_CURRENT returns the identity value generated for a specific table in any session and any scope. For more information, see 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___)

jeudi 26 mai 2005 à 15:39:28 | Re : recupéré l'id d'un INSERT

palm56

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.



Cette discussion est classé dans : insert, id, recupéré


Répondre à ce message

Sujets en rapport avec ce message

INSERT a l'id qu'on vient de DELETE [ par Bassman ] Voila j'aimerais savoir sous mysql comment forcé l'insertion dès le "départ", c'est a dire, par exemple dans votre table utilisateur vous venez d'en s @@identity apres Insertion [ par issoux ] Bonjour,  J'utilise dans une stored procedure trois  Insert . J'ai besoin de l'id du premier insert pour le mettre dans le deuxieme Insert . Mes id so Pb Insert into !!!! Urgent ... [ par tousimages ] Voila je n'arrive pas a soumettre cette requete a accessil y a 21 champsid --> numeroAutocivilite, nom , prenom , societe, adr1, adr2 --> textecodepos last_insert_id() [ par engelho ] Bonjour,J'utilise un insert pour ajouter une ligne a une table contenant une clef primaire générée automatiquement. Je souhaite récupérer cette clef p Probleme d'insert sql a partir d'un code C [ par caro4200 ] Bonjour,J'ai une procédure stockée qui s'excute bien lorsque je l'appelle de dataviewer.Par contre, lorsque je l'appelle à partir d'un code C, on sort Comment annuler un INSERT dans un Trigger ? [ par vladam ] Bonjour, j'ai un trigger suivant :Que dois-je mettre à la place de "-- Annuler l'insert" pour annuler l'insert en cours ?ALTER</ insert with connect in PL/SQL [ par peaceof ] slt a tous ,j'ai pas reussi a finaliser un trigger "create or replace trigger agence after insert on agencefor each rowBeginconnect as kairouan/sa@tel Procedure Insert du dernier ID [ par ecureuilmasque ] Bonjour,Je veux recupérer le dernier ID lors du dernier insert avec Select @@IDENTITY.Voici la procedure :ALTER PROCEDURE sp_insertbug_IHM_Bug     @As fonction mysql_insert_id [ par scorpion077 ] Bonjour,le code suivant est censé tout d'abord ajouter une nouvelle photo dans la table photo, puis récupérer l iD de la dernière photo ajouter et l'e Recuperer ID pas encore crée [ par Zachs ] Hello j'aimerai pouvoir recuperer l'ID d'un enregistrement que je n'ai pa encore crée pour ou qu'une fois qu'il est crée je puisse le reprendre pour l


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,452 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.