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 ON DELETE CASCADE


Sujet :

MS SQL Server

  1. #1
    Membre régulier
    Inscrit en
    Décembre 2008
    Messages
    483
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 483
    Points : 105
    Points
    105
    Par défaut Probleme ON DELETE CASCADE
    Bonsoir,

    Mon projet est la création d'un forum. Voici mon script de création des tables sur SQL-Server :


    Or, s'il existe un ou plusieurs messages appartenant à un sujet, je ne peux pas supprimer ce sujet. Ce qui est normal car dans la table message j'ai un ou plusieurs champs faisant référence à la table sujet.

    Pour résoudre ce problème il faudrait alors que j'utilise l'instruction DELETE ON CASCADE .

    A partir de là je ne suis pas trop sûr de savoir bien le faire. Je pense qu'il faudrait mettre cette instruction après les clés étrangères de la table sujet, mais j'ai des erreurs lors de la création de mon script...

    Merci

    edit : j'ai une autre petite question : comment puis-je faire pour exporter ma base? C'est-à-dire faire comme sous MySQL et exporter un script avec la création des tables et les insertions de données.

  2. #2
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Points : 12 371
    Points
    12 371
    Par défaut
    Bonjour,

    Voici un exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ALTER TABLE sujet
    ADD constraint fk_sujet_rubrique FOREIGN KEY (idRub)
    REFERENCES rubrique(idRub) ON DELETE CASCADE
    GO
    j'ai une autre petite question : comment puis-je faire pour exporter ma base? C'est-à-dire faire comme sous MySQL et exporter un script avec la création des tables et les insertions de données.
    Si vous êtes sous SQL Server 2008, vous pouvez faire comme je l'ai montré ici

    @++

  3. #3
    Membre régulier
    Inscrit en
    Décembre 2008
    Messages
    483
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 483
    Points : 105
    Points
    105
    Par défaut
    Je suis sous SQL Server 2005. Ça le fait aussi ?

    edit : le DELETE ON CASCADE je dois le mettre après cette clé étrangère?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ALTER TABLE sujet
    ADD constraint fk_sujet_rubrique FOREIGN KEY (idRub) REFERENCES rubrique(idRub)
    go
    Car dans mon application, lorsque j'essai de supprimer un sujet qui possède des messages. J'ai cette erreur :

    L'instruction DELETE est en conflit avec la contrainte REFERENCE 'fk_msg_sujet'. Le conflit s'est produit dans la base de données 'base', table 'dbo.msg'.
    L'instruction a été arrêtée.

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 922
    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 : 21 922
    Points : 51 717
    Points
    51 717
    Billets dans le blog
    6
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    ALTER TABLE sujet
    ADD constraint fk_sujet_rubrique 
    FOREIGN KEY (idRub) 
    REFERENCES rubrique(idRub)
    ON DELETE CASCADE
    go
    A +

  5. #5
    Membre régulier
    Inscrit en
    Décembre 2008
    Messages
    483
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 483
    Points : 105
    Points
    105
    Par défaut
    edit : résolu pour le delete on cascade

  6. #6
    Membre régulier
    Inscrit en
    Décembre 2008
    Messages
    483
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 483
    Points : 105
    Points
    105
    Par défaut
    edit : résolu

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

Discussions similaires

  1. probleme requete DELETE
    Par Ice-tea dans le forum Bases de données
    Réponses: 3
    Dernier message: 09/06/2006, 14h47
  2. [SQL 2K5] Pb : ON DELETE CASCADE : référence circulaire
    Par n00bi dans le forum MS SQL Server
    Réponses: 10
    Dernier message: 29/05/2006, 09h48
  3. [SQL2K] delete cascade d'une table sur elle même
    Par StormimOn dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 25/04/2006, 17h28
  4. probleme de delete dans un destructeur
    Par Chewbi dans le forum C++
    Réponses: 6
    Dernier message: 12/03/2006, 01h29
  5. Delete cascade --> problème de temps de traitement
    Par celine31 dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 11/01/2006, 13h03

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