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 :

on delete cascade sous sql server 2005


Sujet :

MS SQL Server

  1. #1
    Membre averti
    Étudiant
    Inscrit en
    Mai 2009
    Messages
    35
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2009
    Messages : 35
    Par défaut on delete cascade sous sql server 2005
    bonjour,
    je voudrais créer une table qui comporte 2 clés étrangères avec la fonction on delete cascade sous sql Server 2005, mais lors de l'exécution il me retourne le message suivant.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     Msg*1785, Niveau*16, État*0, Ligne*1
    L'introduction d'une contrainte FOREIGN KEY 'fk_secteurs2' sur la table 'secteurs' peut provoquer des cycles ou des accès en cascade multiples. Spécifiez ON DELETE NO ACTION ou ON UPDATE NO ACTION, ou modifiez d'autres contraintes FOREIGN KEY.
    Msg*1750, Niveau*16, État*0, Ligne*1
    Impossible de créer la contrainte. Voir les erreurs précédentes.
    voila le code de la table
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     create table secteurs(
    code_sec varchar(20),
    nom_sec varchar(20),
    num_ss_dir varchar(20),
    num_dir varchar(20),
    constraint pk_secteurs primary key(code_sec),
    constraint fk_secteurs1 foreign key(num_ss_dir) references ss_direction on delete cascade,
    constraint fk_secteurs2 foreign key(num_dir) references direction_pro on delete cascade )

  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
    Par défaut
    Bonjour,

    Quelle est la définition des deux autres tables ?

    @++

  3. #3
    Membre averti
    Étudiant
    Inscrit en
    Mai 2009
    Messages
    35
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2009
    Messages : 35
    Par défaut
    merci pour votre réponse.
    je n'ai pas bien saisi ce que vous voulez dire par définition des 2 autres tables.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    create table direction_pro(
    num_dir varchar(20),
    nom_dir varchar(25),
    constraint pk__direction_pro primary key(num_dir))
     
    create table ss_direction(
    num_ss_dir varchar(20),
    nom_ss_dir varchar(20),
    num_dir varchar(20),
    constraint pk_ss_direction primary key(num_ss_dir),
    constraint fk_ss_direction foreign key(num_dir) references direction_pro on delete cascade )
    et merci encore

  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 998
    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 998
    Billets dans le blog
    6
    Par défaut
    Vous tentez de faire une référence circulaire et dans ce cas il n'est pas possible de savoir par quelle branche la propagation du DELETE va se faire.
    En général ce genre de référence avec cycle est le résultat d'une mauvais modélisation au niveau conceptuel !

    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/ * * * * *

  5. #5
    Membre averti
    Étudiant
    Inscrit en
    Mai 2009
    Messages
    35
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2009
    Messages : 35
    Par défaut
    merci pour votre réponse, j'essayerai de résoudre le problème au niveau conceptuel
    A+

Discussions similaires

  1. [Requete] probleme de synthaxe sous SQL SERVER 2005
    Par sanosuke dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 14/05/2007, 11h24
  2. Création d'un cube sous Sql Server 2005
    Par Valentino62100 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 16/04/2007, 09h42
  3. Acces concurrentiel sous sql server 2005
    Par Marco77 dans le forum Langage SQL
    Réponses: 1
    Dernier message: 07/02/2007, 15h53
  4. Réponses: 1
    Dernier message: 13/12/2006, 14h18
  5. Importé un fichier excel sous SQL Server 2005
    Par summer91 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 01/05/2006, 10h52

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