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

Langage SQL Discussion :

[SQL Server 2000] Update clé primaire


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut [SQL Server 2000] Update clé primaire
    Bonjour à tous,

    Voila je souhaiterais changer la valeur d'une clé primaire, mais celle-ci est liée à d'autres tables.

    J'obtiens donc une erreur lorsque j'essaie de faire ce changement :

    UPDATE statement conflicted with COLUMN REFERENCE constraint 'FK_Tab1_clé1'.The conflict occurrent in database 'MaBD', table 'Tab2', column 'Clé2'.
    Et-il possible de faire un update de toutes ces tables en meme temps ? Ou alors y'a-t-il une solution plus adaptée à mon problème ?

    D'avance merci de votre aide.

  2. #2
    Membre Expert

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Par défaut
    Essayez de modifier dans l'ordre suivant :
    - la valeur de la(les) clé(s) étrangère(s) en prenant garde à ce que la nouvelle valeur corresponde à une clé primaire existante
    - puis, la clé primaire (l'ancienne valeur ne doit alors plus être référencée)

  3. #3
    Invité
    Invité(e)
    Par défaut
    J'ai entendu parlé d'un solution de "update en cascade".

    Connaissez-vous ce procédé ?

  4. #4
    Membre Expert

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Par défaut
    C'est automatiser le traitement dont je vous parle.

    Les contraintes d'intégrité ont pour conséquence que vous ne pouvez pas insérer une ligne dont une clé étrangère référence une clé primaire inexistante.
    De la même manière, vous ne pouvez pas supprimer une clé primaire si celle-ci est référencée.
    D'où la nécessite d'ajouter des contraintes CASCADE.

  5. #5
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 22 031
    Billets dans le blog
    6
    Par défaut
    Je dirais plutôt qu'il faut éviter d'utiliser des clefs sémantiques...

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  6. #6
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par SQLpro
    Je dirais plutôt qu'il faut éviter d'utiliser des clefs sémantiques...

    A +
    Désolé je n'ai pas compris.

    En faite j'ai réussi à régler mon problème, j'ai donc changé la contrainte comme Magnus m'avait dit.
    Dans mon diagramme (sous SQL server 2000), j'ai modifié la liaison entre mes 2 tables en cochant la case "Enforce Relationship for INSERTS AND UPDATES -> Cascade Update Related Fields".

    Ca marche comme ca, en faisant un update sur ma clé primaire de la première table, ca update automatiquement la clé primaire de la 2ème table.

    Merci pour votre aide en tout cas, c'est sympa

  7. #7
    Membre Expert

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Par défaut
    Citation Envoyé par SQLpro
    Je dirais plutôt qu'il faut éviter d'utiliser des clefs sémantiques
    Personnellement, je ne fais pas beaucoup de modélisation et moi non plus, je ne connais pas les clés sémantiques.
    Tu peux nous en dire plus SQLpro ?

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

Discussions similaires

  1. [SQL Server 2000]Update & remplacement de caractère
    Par Unsurgent dans le forum Développement
    Réponses: 2
    Dernier message: 30/05/2011, 10h58
  2. [SQL SERVER 2000] UPDATE avec jointure
    Par Jsh dans le forum Développement
    Réponses: 2
    Dernier message: 23/01/2009, 11h08
  3. [SQL Server 2000]Update avec case
    Par nox75 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 07/10/2007, 21h18
  4. [SQL Server 2000] UPDATE sur tous les champs de ma table
    Par neeux dans le forum Langage SQL
    Réponses: 8
    Dernier message: 11/12/2006, 11h13
  5. update pour calcul pourcentage (SQL SERVER 2000)
    Par meufeu dans le forum Langage SQL
    Réponses: 3
    Dernier message: 13/09/2005, 10h04

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