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 :

Supprimer un champ de plusieurs tables


Sujet :

MS SQL Server

  1. #1
    Membre du Club
    Inscrit en
    Juin 2007
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 98
    Points : 52
    Points
    52
    Par défaut Supprimer un champ de plusieurs tables
    Bonjour,
    j'ai une table user dont la clé primaire est "cin".
    plusieurs autres tables héritent de cette clé comme clé etrangere.
    je voudrais exécuter une requete delete qui me permet de supprimer un enregistrement qui a cette CIN de toutes les tables dont ce champs existe mais je n'arrive pas a trouver la requete adéquate.

    Merci!!

  2. #2
    Membre du Club
    Inscrit en
    Juin 2007
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 98
    Points : 52
    Points
    52
    Par défaut
    Bon j'ai réussi à résoudre le problème mais avec une méthode que j'aime pas trop
    j'ai commencé par executer des requetes pour enlever les enregistrements des tables qui héritent la clé puis j'ai executé une derniere requete pour l'enlever de la table ou la clé est primaire
    mais je me suis retrouvé avec 6 requetes dans une meme methode et je ne trouve pas ça tres pratique.

    donc avez vous autres solutions??
    A+

  3. #3
    Membre confirmé Avatar de agemis31
    Profil pro
    DBA
    Inscrit en
    Octobre 2007
    Messages
    399
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : DBA

    Informations forums :
    Inscription : Octobre 2007
    Messages : 399
    Points : 478
    Points
    478
    Par défaut
    Bonsoir,

    SQL Serveur peut faire ça tout seul pour vous. Ca s'appelle de la suppression en cascade.

    @+

  4. #4
    Membre du Club
    Inscrit en
    Juin 2007
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 98
    Points : 52
    Points
    52
    Par défaut
    Bonjour,
    merci pour la réponse ,
    donc d'apres ce que j'ai compris le seul moyen d'utiliser "on cascade" est de creer la table comme l'indique l'exemple??

  5. #5
    Membre confirmé Avatar de agemis31
    Profil pro
    DBA
    Inscrit en
    Octobre 2007
    Messages
    399
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : DBA

    Informations forums :
    Inscription : Octobre 2007
    Messages : 399
    Points : 478
    Points
    478
    Par défaut
    Bonjour,

    Pour la syntaxe oui. Par contre, vous n'êtes pas obligé de recréer la table.
    Il suffit d'ajouter la contrainte.

    En prenant toujours le même exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    ALTER TABLE FACTURE
    ADD CONSTRAINT [FK_FACTURE_CLIENT] FOREIGN KEY 
    (
    	[CLI_ID]
    ) REFERENCES [CLIENT] (
    	[CLI_ID]
    ) ON DELETE CASCADE
    @+

  6. #6
    Membre du Club
    Inscrit en
    Juin 2007
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 98
    Points : 52
    Points
    52
    Par défaut
    Merci beaucoup
    A+

  7. #7
    Membre confirmé Avatar de agemis31
    Profil pro
    DBA
    Inscrit en
    Octobre 2007
    Messages
    399
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : DBA

    Informations forums :
    Inscription : Octobre 2007
    Messages : 399
    Points : 478
    Points
    478
    Par défaut
    De rien, content d'avoir pu vous aider.

    @+

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

Discussions similaires

  1. détecter champs communs à plusieurs tables
    Par mick84m dans le forum Requêtes
    Réponses: 2
    Dernier message: 21/06/2006, 14h18
  2. Réponses: 1
    Dernier message: 29/05/2006, 10h50
  3. [Access] extraire des champs de plusieurs tables
    Par ddeee dans le forum Langage SQL
    Réponses: 3
    Dernier message: 05/04/2006, 16h45
  4. sous-formulaire : champs provenant plusieurs tables
    Par patbeautifulday1 dans le forum IHM
    Réponses: 13
    Dernier message: 21/12/2005, 11h17
  5. Supprimer un champ dans une table
    Par valerie90 dans le forum Langage SQL
    Réponses: 6
    Dernier message: 24/08/2004, 09h53

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