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 :

obtenir la clé primaire de la dernière insertion


Sujet :

MS SQL Server

  1. #1
    Nouveau candidat au Club
    Inscrit en
    Octobre 2007
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 1
    Par défaut obtenir la clé primaire de la dernière insertion
    Bonjour,

    Comme puis-je obtenir la clé primaire id1 de la dernière insertion effectué dans la table TABLE_Toto. La fonction SELECT IDENT_CURRENT('TABLE_Toto') ne retourne NULL probablement car j'ai deux clés primaires et non une seule. (SCOPE_IDENTITY() et @@IDENTITY ne sont pas une solution)

    structure de la table (MS SQL)
    TABLE_Toto
    id1 (nvarchar 50) primary key auto-increment
    id2 (nvarchar 20) primary key
    Nom
    Preom
    ...

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    356
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Mai 2007
    Messages : 356
    Par défaut
    Tu peux essayer quelques choses du type.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    DECLARE @ID INT
    SELECT @ID=MAX(id1) FROM maTable
    Le seul problème de cette solution est qu'il faut poser un verrou interdisant les insertions afin que le dernier ID reste cohérent.

  3. #3
    Membre Expert
    Avatar de rudib
    Homme Profil pro
    Fakir SQL Server & NoSQL
    Inscrit en
    Mai 2006
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Fakir SQL Server & NoSQL

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 573
    Par défaut
    Bonjour,

    désolé, les tables avec deux clés primaires n'existent pas, sauf peut-être dans la quatrième dimension.

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    356
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Mai 2007
    Messages : 356
    Par défaut
    Une clé primaire peut être un ensemble de champ d'une table.
    Clé primaire ={champ1,champ2}
    C'est une contrainte qu'on peut mettre en oeuvre lorsd'une modélisation complexe.

  5. #5
    Membre Expert
    Avatar de rudib
    Homme Profil pro
    Fakir SQL Server & NoSQL
    Inscrit en
    Mai 2006
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Fakir SQL Server & NoSQL

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 573
    Par défaut
    Salut,

    Ca s'appelle une clé primaire composite, pas deux clés primaires. Il faut de plus éviter de confondre clé primaire et colonne autoincrémentale. Ce n'est pas parce qu'une colonne est identity qu'elle est, ou fait partie de la clé primaire. La clé primaire est une contrainte du modèle relationnel, l'identity une implémentation physique de SQL Server.

    IDENT_CURRENT() retourne toujours une valeur, sauf si la table est vide.

Discussions similaires

  1. gridview : obtenir id (clef primaire) sous vs
    Par Tidus159 dans le forum ASP.NET
    Réponses: 2
    Dernier message: 21/05/2008, 14h29
  2. [mySql & Java] Dernière insertion
    Par delma dans le forum JDBC
    Réponses: 10
    Dernier message: 17/04/2008, 17h18
  3. Clé primaire auto incrémentée, problème insertion
    Par barnoufal dans le forum Ruby on Rails
    Réponses: 0
    Dernier message: 12/02/2008, 17h17
  4. Comment obtenir la clé primaire d'une table
    Par wodel dans le forum MS SQL Server
    Réponses: 8
    Dernier message: 22/11/2006, 19h59
  5. MySQL: obtenir les résultats de la dernière insertion
    Par TNorth dans le forum Requêtes
    Réponses: 2
    Dernier message: 31/05/2006, 17h44

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