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 :

Nature de la clé primaire


Sujet :

Développement SQL Server

  1. #1
    Membre du Club
    Inscrit en
    Juin 2009
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 91
    Points : 66
    Points
    66
    Par défaut Nature de la clé primaire
    Bonjour,

    Je travaille avec SQL server comme SGBD.

    Je voudrais bien savoir est-ce-que je pourrai avoir une clé primaire de type Date ?!

    Par-ce-que quand j'ai essayé de programmer avec ça on me met a chaque fois violation de la clé primaire alors que j'insère pas la même valeur !

    Est-ce-que quelqu'un pourra m'aider ?!

  2. #2
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 002
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 002
    Points : 30 905
    Points
    30 905
    Billets dans le blog
    16
    Par défaut
    Pourriez-vous présenter l'instruction CREATE TABLE et les instructions INSERT relatives à cette table.
    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
    => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench
    Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.

  3. #3
    Membre du Club
    Inscrit en
    Juin 2009
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 91
    Points : 66
    Points
    66
    Par défaut
    Pour la création des tables, j'utilise le mode assistant.
    Ma table s'appelle JoursEmployes & contient un seul champ qui est : IDjourEmploye de type SmallDateTime ..

    Pour la requete, (en utilisant VB.net) elle est comme suite:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "Insert into JoursEmployes values(" & DateTimePicker1.Value & ")"

  4. #4
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 002
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 002
    Points : 30 905
    Points
    30 905
    Billets dans le blog
    16
    Par défaut
    Le type SmallDateTime a une résolution à la minute.

    Exemple

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    create table A 
    (
    aId    SmallDateTime  not null
     
    Constraint A_PK primary key (aId)
    ) ;
    Si l'on insère :

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    insert into A values ('24/09/2009 00:00:00') ;
    insert into A values ('24/09/2009 00:00:20') ;
    alors '24/09/2009 00:00:20' est arrondi à '24/09/2009 00:00:00'

    donc le 2e INSERT est rejeté :
    Violation de la contrainte PRIMARY KEY 'A_PK'. Impossible d'insérer une clé en double dans l'objet 'dbo.A'.
    En revanche, si l'on effectue les opérations suivantes :

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    insert into A values ('24/09/2009 00:00:00') ;
    insert into A values ('24/09/2009 00:00:30') ;
    alors '24/09/2009 00:00:30' est arrondi à '24/09/2009 00:01:00' et tout se passe bien.

    => Prévoyez un type de résolution plus fine, tel que Datetime. Reportez-vous à :

    http://msdn.microsoft.com/fr-fr/library/ms182418.aspx
    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
    => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench
    Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.

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

Discussions similaires

  1. Import data d'Excel ds 2 table lié par clé primaire
    Par lord_paco dans le forum MS SQL Server
    Réponses: 11
    Dernier message: 10/05/2005, 09h31
  2. clé primaire composée de 2 clés étrangères
    Par Tigresse dans le forum Installation
    Réponses: 5
    Dernier message: 28/07/2003, 14h38
  3. clé primaire aléatoire
    Par peuh dans le forum PostgreSQL
    Réponses: 8
    Dernier message: 23/06/2003, 20h51
  4. Procédure stocké:Insert et renvoie de la clé primair
    Par caramel dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 17/04/2003, 09h34
  5. Problème pour récupérer la clé primaire
    Par caramel dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 11/04/2003, 13h57

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