Bonjour ,
j'ai une question : comment en peut récupérer le dernier code auto incrémente insérer dans une ancienne transaction d’hier ou bien d'une date précédente ??
Merci d'avance.
Bonjour ,
j'ai une question : comment en peut récupérer le dernier code auto incrémente insérer dans une ancienne transaction d’hier ou bien d'une date précédente ??
Merci d'avance.
Bonjour,
Sans la définition de la table, ça va être difficile de vous aider.
Merci de lire la charte de postage![]()
Bonjour,
la structure de la table :
le problème c'est que par exemple la première ligne prend le code 1 , puis je supprime cette ligne et lorsque j'ajoute une nouvelle ligne prend le code 2 !! donc je veux comment récupérer le dernier code généré ??
Code : Sélectionner tout - Visualiser dans une fenêtre à part create table etudiant (code int primary key identity, nom varchar(50)).
Dans ce cas utilisez SCOPE_IDENTITY()
@++![]()
Pourtant :Envoyé par zaghi
Si vous aviez lu la charte de postage comme je vous l'ai demandé, vous auriez vu qu'il est de bon ton de poster la requête.Envoyé par zaghi
Sinon vous perdez votre temps, et celui de ceux qui tentent de vous aider avec.
Également, si vous aviez lu la documentation de SCOPE_IDENTITY(), vous auriez vu :
@++Renvoie la dernière valeur d'identité insérée dans une colonne d'identité dans la même étendue![]()
J'ai tester cette requêteil m'a retourner NULL , et l'autre
Code : Sélectionner tout - Visualiser dans une fenêtre à part SELECT ident_current('etudiant')aussi il retourne NULL .
Code : Sélectionner tout - Visualiser dans une fenêtre à part SELECT SCOPE_IDENTITY()
je peux reformuler mon question : comment récupérer la dernière valeur d'identité insérée dans une colonne d'identité mais pas dans la même étendue?
bonjour,
Si tu stock la date d'insertion dans ta table tu peux récupérer l'id associé à la création la plus récente, sinon tu peux faire un max( id ) en cas d'int.
Tu as aussi la solution de stocker lors de ton insertion le scope_identity() dans une table afin de l'exploiter plus tard.
Cordialement,
Lyche
Merci Lyche pour votre aide
la dernière solution va résolu le problème , mais je veux une fonction simple qui permet de retourner le dernier code générer son créer une nouvelle table .
par exemple :
aujourd'hui je fait une requête insert grâce a mon application :
l'etudiant ZAGHI prend le code 1 et je fait ensuite une suppression :
Code : Sélectionner tout - Visualiser dans une fenêtre à part INSERT INTO etudiant VALUES ('ZAGHI')
je ferme mon application et je ouvrir , dans ce cas lorsque je veux récupérer le dernier code générer (le 1) les trois méthode ca marche pas :
Code : Sélectionner tout - Visualiser dans une fenêtre à part DELETE FROM etudiant WHERE code=1
Code : Sélectionner tout - Visualiser dans une fenêtre à part SELECT max(code) FROM etudiant
Code : Sélectionner tout - Visualiser dans une fenêtre à part SELECT ident_current('etudiant')
Code : Sélectionner tout - Visualiser dans une fenêtre à part SELECT SCOPE_IDENTITY()
Question bête : pourquoi vouloir récupérer le dernier id généré ? Il n'a a priori aucun intérêt en tant que tel.
Non c'est pas une question d’intérêt , la question c'est que sql server a une chose pour le stockage de valeur des colonnes identité , sois en supprime la dernière enregistrement ou non il récupéré la dernière valeur générer . donc je dis que il existe une fonction pour le récupérer .
Normalement IDENT_CURRENT fait exactement ça ; ça ne sort NULL que si la table n'est pas reconnue (mauvais schéma, peut-être ?). Cependant la question de savoir à quoi sert le fait de connaitre la dernière valeur utilisée reste posée.
Ou si la table n'a pas de colonne avec la propriété IDENTITYNormalement IDENT_CURRENT fait exactement ça ; ça ne sort NULL que si la table n'est pas reconnue
@++![]()
Merci beaucoup Rei Ichido , la fonction c'est : IDENT_CURRENT qui renvoie la dernière valeur d'identité générée pour une table spécifique dans n'importe quelles session et étendue
IDENT_CURRENT
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager