Précédent   Forum des professionnels en informatique > Bases de données > MS SQL-Server > Développement
Développement Forum d'entraide sur le Transact-SQL, le CLR, les procédures stockées, les triggers, les requêtes SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 17/02/2011, 17h07   #1
Candidat au titre de Membre du Club
 
Inscription : février 2011
Messages : 70
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 70
Points : 13
Points : 13
Par défaut Ajout de contraintes On Delete Cascade sur des foreign key

Bonjour,

Est ce que quelqu'un connait un script SQL pour updater des foreign key existante et leur ajouter la contrainte ON DELETE CASCADE !

Je m'explique, j'ai une base de donnée avec plusieurs tables, qui ont des attributs et ces attributs ont des contraintes Foreign Key.
Maintenant que la base est construite j'aimerais pouvoir ajouter une contrainte ON DELETE CASCADE sur ces FK ! Et j'aimerais ne pas m'amuser à supprimer chaque clés et à les reconstruire en ajoutant cette contrainte !

Voila mon soucis ! merci !
weebo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/02/2011, 17h37   #2
Membre Expert
 
Avatar de iberserk
 
Homme Bruno IGNACE
Architecte de base de données
Inscription : novembre 2004
Messages : 1 299
Détails du profil
Informations personnelles :
Nom : Homme Bruno IGNACE
Âge : 30
Localisation : France, Gironde (Aquitaine)

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

Informations forums :
Inscription : novembre 2004
Messages : 1 299
Points : 2 282
Points : 2 282
Envoyer un message via MSN à iberserk
Bonjour,

Désolé mais sauf erreur de ma part ce n'est pas possible... il est en revanche simple de créer un script récupérant dynamiquement toutes vos contraintes, les supprimant et les recréant en ajoutant le DELETE CASCADE
iberserk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/02/2011, 18h20   #3
Candidat au titre de Membre du Club
 
Inscription : février 2011
Messages : 70
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 70
Points : 13
Points : 13
re !

C'est bien ce qui me semblait, en cherchant sur la toile !
Une idée du script ?
weebo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/02/2011, 18h56   #4
Membre Expert
 
Avatar de iberserk
 
Homme Bruno IGNACE
Architecte de base de données
Inscription : novembre 2004
Messages : 1 299
Détails du profil
Informations personnelles :
Nom : Homme Bruno IGNACE
Âge : 30
Localisation : France, Gironde (Aquitaine)

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

Informations forums :
Inscription : novembre 2004
Messages : 1 299
Points : 2 282
Points : 2 282
Envoyer un message via MSN à iberserk
vous avez tout ce qu'il vous faut dans les informations schéma
iberserk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/02/2011, 08h47   #5
Candidat au titre de Membre du Club
 
Inscription : février 2011
Messages : 70
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 70
Points : 13
Points : 13
Merci pour la réponse !

dsl ca ne fiat pas super longtps que j'utilise sql server, comment fait on ?

merci
weebo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/02/2011, 14h10   #6
Membre éprouvé
 
Homme Hamid MIRA
Ingénieur développement logiciels
Inscription : septembre 2003
Messages : 177
Détails du profil
Informations personnelles :
Nom : Homme Hamid MIRA
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : septembre 2003
Messages : 177
Points : 413
Points : 413
Concernant le script et répondre à ta question, il suffit d'écrire une procédure récursive basée sur les vues systèmes tout en utilisant les technique de la CTE (Common Table Expression ).
Afin de respecter les contraintes de clé étrangère (FK), Le traitement doit être évidement effectué du bas vers le haut de la structure hiérarchique des liens FK.
La requête de base à utiliser de manière récursive est la suivantes :
Code :
1
2
3
4
5
6
7
8
9
10
SELECT fk.name AS ForeignKey,
OBJECT_NAME(fk.parent_object_id) AS TableName,
COL_NAME(fck.parent_object_id, fck.parent_column_id) AS ColumnName,
OBJECT_NAME (fk.referenced_object_id) AS ReferenceTableName,
COL_NAME(fck.referenced_object_id, fck.referenced_column_id) AS ReferenceColumnName 
FROM sys.foreign_keys AS fk
INNER JOIN sys.foreign_key_columns AS fck
ON fk.OBJECT_ID = fck.constraint_object_id
WHERE OBJECT_NAME (fk.referenced_object_id)  = N'MaTablePrincipale' 
ORDER BY fk.name, fck.constraint_column_id
Remplacer dans le code ci-dessus, N'MaTablePrincipale' par le vrai nom de ta table racine (c.à.d le nom de la table située à la racine de la structure hiérarchique des liens FK).

A+
hmira est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/02/2011, 15h26   #7
Rédacteur/Modérateur

 
Avatar de SQLpro
 
Homme Frédéric BROUARD
Expert SGBDR & SQL
Inscription : mai 2002
Messages : 10 950
Détails du profil
Informations personnelles :
Nom : Homme Frédéric BROUARD
Localisation : France

Informations professionnelles :
Activité : Expert SGBDR & SQL
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 10 950
Points : 17 769
Points : 17 769
Inspirez vous du script que j'ai écrit sur un sujet connexe :
http://blog.developpez.com/sqlpro/p8...-suppression-d

A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro
http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation
* * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *
SQLpro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2011, 10h03   #8
Candidat au titre de Membre du Club
 
Inscription : février 2011
Messages : 70
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 70
Points : 13
Points : 13
Merci pour vos messages, je vais voir ca !!
weebo est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h22.


 
 
 
 
Partenaires

Hébergement Web