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

Développement SQL Server Discussion :

Insert returning - ça existe tu


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Administrateur de base de données
    Inscrit en
    Juillet 2006
    Messages
    98
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juillet 2006
    Messages : 98
    Par défaut Insert returning - ça existe tu
    Salut,

    je dois modifier une fonction en sql server qui insère un enregistrement dans une table et qui retourne un int. (0 succes, -1 echec, -2 doublon)

    Jusque là, rien de compliquer.

    La table dans laquelle mon insert est fait avec un "numéro auto" comme clé primaire.

    J'ai besoin de retourner cette clé primaire à la place du 0 = succès. Dans le fond j'aimerais retourner 23208 par exemple.

    Est-ce que c'est possible d'obtenir cette information en SQL Server?

    Merci d'avance!

  2. #2
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Par défaut
    Bonjour,

    Oui c'est possible. Dans votre procédure stockée, vous pouvez écrire quelque chose comme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    DECLARE @newID INT
    ... Traitement d'insertion
    SELECT @newID = SCOPE_IDENTITY()
    @++

  3. #3
    Membre confirmé
    Administrateur de base de données
    Inscrit en
    Juillet 2006
    Messages
    98
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juillet 2006
    Messages : 98
    Par défaut
    Ok cool

    Mais si un autre utilisateur fait un insertion avant que je récupère mon SCOPE_IDENTITY() (cas rare mais faut y penser), est-ce que je vais avoir la bonne valeur?

    Merci!

  4. #4
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Par défaut
    Oui, ce qui n'est pas le cas si vous utilisez @@IDENTITY.
    Mais il est vrai que c'est un cas hyper-rare

    @++

  5. #5
    Membre expérimenté
    Inscrit en
    Février 2009
    Messages
    224
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 224
    Par défaut
    Oui car scope_identity retourne la dernière valeur identité affcté dans l'étendue courante i.e. notre connection dans ce cas précis.
    Ce n'est pas le cas de @@identity par exemple

Discussions similaires

  1. INSERT IF NOT EXISTS
    Par finiderire dans le forum Langage SQL
    Réponses: 12
    Dernier message: 27/03/2012, 17h44
  2. insert et not exists
    Par farenheiit dans le forum SQL
    Réponses: 3
    Dernier message: 10/07/2009, 16h45
  3. insert returning pk
    Par jose.ignacio.agata dans le forum SQL
    Réponses: 1
    Dernier message: 25/02/2008, 22h20
  4. Insert .. where not exists
    Par Zolex dans le forum SQL Procédural
    Réponses: 11
    Dernier message: 02/03/2007, 11h26
  5. ASP Insertion de pdf existants avec asppdf
    Par noukiç_kabanoff dans le forum ASP
    Réponses: 1
    Dernier message: 08/02/2007, 17h17

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