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 :

Comment obtenir la clé primaire d'une table


Sujet :

MS SQL Server

  1. #1
    Membre régulier Avatar de wodel
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Avril 2005
    Messages
    295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Avril 2005
    Messages : 295
    Points : 104
    Points
    104
    Par défaut Comment obtenir la clé primaire d'une table
    Salut,

    j'utilise MS SQL Server Express 2005 pour mes bases de données,

    j'aimerai savoir comment obtenir la derniére valeur de la clé primaire inserée dans une table afin de l'incrementer et insérer un nouvel element avec......

  2. #2
    Membre actif Avatar de neuropathie
    Inscrit en
    Janvier 2005
    Messages
    223
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 223
    Points : 201
    Points
    201
    Par défaut
    tu peux adapter cette méthode?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    SELECT
    TABLE_SCHEMA,
    TABLE_NAME,
    CONSTRAINT_NAME
    FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS
    WHERE CONSTRAINT_TYPE = 'PRIMARY KEY'
    ORDER BY
    TABLE_SCHEMA,
    TABLE_NAME

  3. #3
    Membre régulier Avatar de wodel
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Avril 2005
    Messages
    295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Avril 2005
    Messages : 295
    Points : 104
    Points
    104
    Par défaut
    Salut,

    c pas ce que je veut, ce que je veut c'est lors de l'insertion d'un nouveau element dans la base de données a travers une application web par exemple comment faire pour recupérer la derniére valeur de la clé primaire de la table afin d'insérer de nouveaux elements................

  4. #4
    Expert confirmé
    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
    Points : 4 043
    Points
    4 043
    Par défaut
    Bonjour,

    Petite confusion terminologique entre clé primaire et auto-incrément. Un auto-incrément est un mécanisme propre à des SGBD comme SQL Server pour générer automatiquement une valeur unique, la clé primaire est une contrainte dans un modèle de bd relationnelle qui garantit l'unicité d'une ligne dans une table.

    Pour obtenir la dernière valeur identity (auto-incrément), regarde :
    @@IDENTITY
    IDENT_CURRENT()
    SCOPE_IDENTIY()

    dans l'aide en ligne.
    Ce que tu veux, c'est probablement IDENT_CURRENT('table_name')

  5. #5
    Membre régulier Avatar de wodel
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Avril 2005
    Messages
    295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Avril 2005
    Messages : 295
    Points : 104
    Points
    104
    Par défaut
    mais si c'est auto incrément, j ai pas besoin de le preciser dans mes requettes d'insertion..............

    je fait ma requétte d'insertion et sql server se charge d'incrémenter la clef

  6. #6
    Expert confirmé
    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
    Points : 4 043
    Points
    4 043
    Par défaut
    Donc si tu ne parles pas d'auto-incrément... tu récupères la valeur de ta clé primaire par un SELECT TOP 1 [les colonnes de ma cle] FROM matable ORDER BY [les colonnes de ma cle] DESC (avec un DESC après chaque colonne).

    Le code de création ta table permettrait d'éviter tout cet embrouillamini.

  7. #7
    Membre régulier Avatar de wodel
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Avril 2005
    Messages
    295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Avril 2005
    Messages : 295
    Points : 104
    Points
    104
    Par défaut
    Salut,

    je vais essayer d'etre plus explicite......

    disons que j'ai deux tables (Person, voiture) et que chaque personne posséde une ou plusieurs voitures....

    Person(Id_person, nom)
    voiture(id_voiture, id_person, nom_voiture)

    lorsque j'ajoute une nouvelle personne, s il n y avait que cette table

    j'aurai fait: insert into Person (nom) values ('my_name')

    mais pour insérer une nouvelle voiture il me faut le Id_person de la personne que je vient d'ajouter, comment il faut faire pour l'avoir...

  8. #8
    Rédacteur
    Avatar de WOLO Laurent
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2003
    Messages
    2 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 741
    Points : 4 414
    Points
    4 414
    Par défaut
    Cette question est déjà traiter plusieurs fois dans ce forum.
    Veuillez consulter la faq.

  9. #9
    Expert confirmé
    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
    Points : 4 043
    Points
    4 043
    Par défaut
    ... et ça correspond exactement à ma première réponse.

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

Discussions similaires

  1. [C#/Oracle] Comment obtenir le dernier enregistrement d'une table ?
    Par heavydrinker dans le forum Accès aux données
    Réponses: 1
    Dernier message: 10/08/2006, 17h03
  2. Réponses: 2
    Dernier message: 24/04/2006, 11h27
  3. Réponses: 6
    Dernier message: 25/03/2006, 17h46
  4. Comment comment définir une clef primaire dans une table??
    Par nek_kro_kvlt dans le forum Bases de données
    Réponses: 4
    Dernier message: 07/02/2005, 21h06
  5. Comment avoir 2 clés primaires dans une table
    Par Guigui_ dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 18/01/2005, 08h29

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