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 :

Probleme de "duplicate key"


Sujet :

MS SQL Server

  1. #1
    Membre éprouvé Avatar de Seth77
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2005
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 448
    Par défaut Probleme de "duplicate key"
    Salut

    Je suis sous NHibernate ; j ai une classe A ayant une relation "many-to-one" vers une autre classe B.
    Dans la bdd j ai bien ma FK avec l id mais egalement un index "UQ_A_skdjskdj" (pour le meme id) les 2 autorisent la valeur null ; quand je sauvegarde une instance de A sans instance de B j ai l exception suivante

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Violation of UNIQUE KEY constraint 'UQ_A_skdjskdj'. Cannot insert duplicate key in object 'dbo.A'. The duplicate key value is (<NULL>).
    The statement has been terminated.
    avec une instance de B dans A cela marche

    Le plus etrange c est qu avec d autre provider cela marche

    Merci d avance

  2. #2
    Expert confirmé
    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 : 46
    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
    Par défaut
    Tu peux nous donner la définition de tes 2 tables ?

    ++

  3. #3
    Membre éprouvé Avatar de Seth77
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2005
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 448
    Par défaut
    cad la definition ?

    Je suis en train de tester .. je pense que le probleme vient parce que cette index est marque en tant qu unique....

  4. #4
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Par défaut
    Bonjour,

    En effet, SQL server à un défaut d'implémentation au niveau des contraintes uniques, et n'accepte pas les NULL multiples.

    Vous pouvez néanmoins résoudre ce problème en faisant à la place un index filtré (si cela correspond réellement à votre besoin fonctionel) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    CREATE UNIQUE INDEX UQ_A_skdjskdj ON dbo.A(LaColonneFK) WHERE LaColonneFK IS NOT NULL

  5. #5
    Expert confirmé
    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 : 46
    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
    Par défaut
    Oui je n'avais pas fait attention au nom de la contrainte qui te pose problème mais tu peux voir dans le message d'erreur que ton index est associé à une contrainte d'unicité

    ++

  6. #6
    Membre éprouvé Avatar de Seth77
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2005
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 448
    Par défaut
    C est bien cela le probleme
    Merci tlm !

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

Discussions similaires

  1. Insert ou Update probleme avec on duplicate key
    Par orphen dans le forum MySQL
    Réponses: 2
    Dernier message: 16/10/2010, 11h42
  2. Probleme avec encodage de simple quote
    Par linkowich dans le forum Langage
    Réponses: 2
    Dernier message: 31/10/2005, 13h16

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