Sql constraint [Fermé]

Signaler
-
Messages postés
88
Date d'inscription
dimanche 4 mai 2008
Statut
Membre
Dernière intervention
15 août 2010
-
Bonjour,
je travaille sur sql server, et j'ai besoin de supprimer des tables qui contiennent des contraintes sur des clés étrangères, alrs ma question est
comment supprimer des contraintes (constraint) en sql?
Merci d'avance, si vous avez la moindre proposition n'hésitez pas



A voir également:

2 réponses

Messages postés
88
Date d'inscription
dimanche 4 mai 2008
Statut
Membre
Dernière intervention
15 août 2010

Salut
Ça aurait été mieux que tu mette des "delete on cascade" lors de la création de tes tables.
salut ProgMad,
je ne connaissais pas trop ça, tu peux m'éclairer, il n'y a donc pas de solution?
y a pas moyen de supprimer ces tables?
merci pour ton intérêt
Messages postés
88
Date d'inscription
dimanche 4 mai 2008
Statut
Membre
Dernière intervention
15 août 2010

Salut,

Les clés étrangères permettent de définir les colonnes d'une table garantissant la validité d'une autre table. Ainsi, il existe des éléments (appelés triggers, ou en français gâchettes ou déclencheurs) permettant de garantir l'ensemble de ces contraintes que l'on désigne par le terme d'intégrité référentielle, c'est-à-dire notamment de s'assurer qu'un tuple utilisé à partir d'une autre table existe réellement.

Ces triggers sont ON DELETE et ON UPDATE :

o ON DELETE est suivi d'arguments entre accolades permettant de spécifier l'action à réaliser en cas d'effacement d'une ligne de la table faisant partie de la clé étrangère :
o CASCADE indique la suppression en cascade des lignes de la table étrangère dont les clés étrangères correspondent aux clés primaires des lignes effacées
o RESTRICT indique une erreur en cas d'effacement d'une valeur correspondant à la clé
o SET NULL place la valeur NULL dans la ligne de la table étrangère en cas d'effacement d'une valeur correspondant à la clé
o SET DEFAULT place la valeur par défaut (qui suit ce paramètre) dans la ligne de la table étrangère en cas d'effacement d'une valeur correspondant à la clé

lien source: https://www.commentcamarche.net/contents/1055-sql-contraintes-d-integrite

Tu peut supprimer ces tables, mais il te faudra supprimer toutes les autres tables qui sont relié à elles, en commençant par les tables qui n'ont pas de clefs externes.
un truc du genre
ALTER TABLE nom_table DROP CONSTRAINT nom_cle

devrait marcher