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

MS SQL Server Discussion :

Last insert ID


Sujet :

MS SQL Server

  1. #1
    Membre émérite
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Points : 2 498
    Points
    2 498
    Par défaut Last insert ID
    Bonjour

    Je cherche la maniere la plus elegante en SQL Server de prendre l'ID autoincrement lors d'un insert ADO C#

    En MySql j'ai fais une methode qui résumé fait ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    internal Int64 execQueryReturnLastId(MySqlCommand MyCmd)
    {
          MyCmd.CommandText += " ;SELECT last_insert_id();";
          MyCmd.Connection = conn;
          Int64 res = 0;
          res = (Int64)MyCmd.ExecuteScalar();
          return res;
    }
    Quel serait l'equivalent MS SQL ?

    Merci de votre aide

  2. #2
    Expert éminent sénior
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ain (Rhône Alpes)

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

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Points : 12 891
    Points
    12 891
    Par défaut
    Bonsoir,

    Dans votre cas vous pouvez utilser la fonction @@IDENTITY qui retournera le derniere valeur d'identité correspondant au dernier insert dans votre table pour la session en cours.

    ++

  3. #3
    Membre émérite
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Points : 2 498
    Points
    2 498
    Par défaut
    Bonsoir !

    Merci pour cette réponse

    Petite précision :
    Dans votre cas
    Il y a des cas ou ca fonctionne autrement ?


    Autre précision :

    N.B. Rien a voir mais je n'ai toujours pas compris pourquoi dans le Forum SQL tout le monde se vouvoye alors qu'ailleurs le tutoiement est plutot d'usage et
    plus convivial ?
    La communauté SQL est-elle différente ?

  4. #4
    Expert éminent sénior
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ain (Rhône Alpes)

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

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Points : 12 891
    Points
    12 891
    Par défaut
    On va se tutoyer ce n'est pas un souci

    Il existe d'autres fonctions (SCOPE_IDENTITY() et IDENT_CURRENT()) pour récupérer cette même valeur mais dont l'étendue est différente.

    @@IDENTITY et SCOPE_IDENTITY() sont limités à la session en cours à la différence près que SCOPE_IDENTITY() se limite également à une portée(procédure stockée, fonction etc...).

    IDENT_CURRENT() n'est pas limitée à une étendue, à une session ou une portée pour la simple et bonne raison qu'elle retourne la dernière valeur d'identité générée pour une table spécifique.

    ++

  5. #5
    Membre émérite
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Points : 2 498
    Points
    2 498
    Par défaut
    ok merci !

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

Discussions similaires

  1. Problème avec last insert id
    Par lyrix dans le forum Développement de jobs
    Réponses: 3
    Dernier message: 29/10/2012, 16h00
  2. LAST INSERT ID (Ibatis)
    Par aya02 dans le forum Persistance des données
    Réponses: 1
    Dernier message: 26/02/2010, 11h12
  3. Gridview récupérer la page et la ligne du last insert
    Par LhIaScZkTer dans le forum ASP.NET
    Réponses: 1
    Dernier message: 19/02/2008, 10h01
  4. [mysql] last insert
    Par colooo dans le forum Langage SQL
    Réponses: 2
    Dernier message: 14/07/2006, 10h43
  5. [V9] "last insert id" ?
    Par qi130 dans le forum Oracle
    Réponses: 9
    Dernier message: 18/12/2005, 13h42

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