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 :

Modification champ d'une table liée


Sujet :

Développement SQL Server

  1. #1
    Candidat au Club
    Femme Profil pro
    Inscrit en
    Février 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Février 2011
    Messages : 4
    Points : 3
    Points
    3
    Par défaut Modification champ d'une table liée
    Bonjour,

    Je travail actuellement sur Sql Server 2012 et je suis bloquée sur une requête sql.
    En effet, l'entreprise où je travail m'a demandé de modifier tous les matricules des employés contenus dans la table pers (pers_mat) par ceux contenus dans la table mediane (agmat). Cette demande en soit n'est pas un soucis, j'ai créé la requête permettant de remplacer tous les anciens matricules par les nouveaux mais mon problème maintenant est que lors de ce changement de matricule dans la table pers, il faut que les toutes les tables liées à celle-ci soient aussi modifiées. Il y en a je pense une dizaine qui reprennent ce numéro de matricule.
    Je ne sait pas comment faire pour que la modification fonctionne en "cascade". Pouvez-vous m'aider ?

    J'espère avoir été assez claire.
    Merci d'avance pour vos réponses.

  2. #2
    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
    Points : 13 092
    Points
    13 092
    Par défaut
    Bonjour,

    il faut modifier vos contraintes, afin de spécifier la mise à jour en cascade.

    vous pouvez le faire via Sql Server Management Studio :
    1/ Selectionnez votre table
    2/ selectionnez votre clef, clic-droit --> modifier
    3/ dans la partie "spécification INSERT et UPDATE", indiquez "En cascade" pour les régle de mise à jour.

    Sinon, vous pouvez le faire en TSQL en spécifiant ON UPDATE CASCADE pour vos contraintes.

    Mais dans les deux cas, il faut le faire pour chaque contrainte

  3. #3
    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
    Points : 13 092
    Points
    13 092
    Par défaut
    Petite précision tout de même :

    Votre clef primaire est mal choisie (mais ça je pense que vous l'aviez remarqué). Une clef primaire devrait être stable, constante c'est à dire qu'elle ne devrait jamais changer de valeur.
    Justement pour éviter de se retrouver dans votre situation.
    Dans votre cas, la clef primaire des employés devrait plutôt être un identifiant auto-incrémenté, n'ayant aucune signification particulière par rapport à vos données. Vous pourriez profiter de l'occasion pour remedier à ce défaut.

    Dans tous les cas,je vous conseille donc d'effectuer vos manipulations sur un serveur de test avant toute chose, car en fonction du volume, une telle requête pourrait avoir un impact très important sur le serveur...

Discussions similaires

  1. [AC-2010] Modif de la valeur d'un champ d'une table liée par ODBC
    Par voilyon dans le forum Requêtes et SQL.
    Réponses: 0
    Dernier message: 12/09/2013, 17h31
  2. Réponses: 7
    Dernier message: 23/08/2006, 15h59
  3. Réponses: 11
    Dernier message: 17/03/2006, 13h20
  4. Comment modifier un champ dans une table liée ?
    Par HookerSeven dans le forum Access
    Réponses: 11
    Dernier message: 05/02/2006, 23h50
  5. [select dans case] reconnaitre un champ d une table liée
    Par the_edge dans le forum MS SQL Server
    Réponses: 14
    Dernier message: 22/10/2004, 16h47

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