IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage SQL Discussion :

insertion : comment récupérer l'enregistrement ?


Sujet :

Langage SQL

  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2005
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 14
    Points : 14
    Points
    14
    Par défaut insertion : comment récupérer l'enregistrement ?
    Bonjour,

    Je cherche a récupérer un enregistrement que je viens de créer avec une cle primaire qui s'auto-incremente
    J'avoue que je n'ai pas recherché dans toute la doc SQL mais dès que je vois @@identity, je comprends plus rien.

    J'ai une table avec
    num (clé primaire qui s'auto-incremente)
    client
    recette
    q_commandee
    datecommande

    Lorsque je fais une insertion, je fais:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    alter procedure creer_commande
    @client nvarchar(200),
    @recette nvarchar(200),
    AS
    INSERT INTO T_COMMANDE(client, recette, q_commandee, datecommande)
    VALUES(@client, @recette, @quantite, GetDate())
    je voudrais pouvoir recuperer num ou mieux, je voudrais pouvoir recuperer cet enregistrement complet

    Quelqu'un peut m'aider?
    Merci

    Balises [Code] ajoutées par l.nico merci d'y penser à l'avenir

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    956
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 956
    Points : 1 199
    Points
    1 199
    Par défaut
    Bonjour,
    D'abord ta procédure stockée ne se compile pas, je suppose que tu t'en es rendu compte, il manque un paramètre.
    Ensuite justement c'est @@identity qu'il te faut, si tu travailles en SQL Server
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    alter procedure creer_commande 
    @client nvarchar(200), 
    @recette nvarchar(200), 
    AS 
    declare @num_commande int
    set commande =-1
    INSERT INTO T_COMMANDE(client, recette, q_commandee, datecommande) 
    VALUES(@client, @recette, @quantite, GetDate())
    set @num_commande=@@identity
    --Pour récupérer l'enregistrement complet
    SELECT * from T_COMMANDE where num=@num_commande;
    --En plus on récupère le numéro de commande créé dans la valeur de retour de la procédure
    return @num_commande
    Attention cela ne marche pas si tu as des triggers.
    a+
    Soazig

  3. #3
    Membre expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Points : 3 145
    Points
    3 145
    Par défaut

    tu as encore plus simple en faisant ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    ALTER PROCEDURE creer_commande
    @client nvarchar(200),
    @recette nvarchar(200),
    AS
    DECLARE@num_commande int
    INSERT INTO T_COMMANDE(client, recette, q_commandee, datecommande)
    VALUES(@client, @recette, @quantite, GetDate())
    SELECT @num_commande = @@IDENTITY
    SELECT @num_commande

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] Faire Insert et récupérer l'enregistrement
    Par damien77 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 05/06/2007, 15h05
  2. Réponses: 1
    Dernier message: 09/02/2007, 09h50
  3. Comment récupérer le nombre d'enregistrements effacés ?
    Par Jérôme Lambert dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 02/10/2006, 09h22
  4. Réponses: 3
    Dernier message: 22/03/2006, 09h47
  5. comment récupérer les x premiers enregistrements
    Par laurent82 dans le forum SQL
    Réponses: 7
    Dernier message: 12/12/2004, 16h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo