Sql constraint

Annie -  
ProgMad Messages postés 90 Statut Membre -
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

2 réponses

  1. ProgMad Messages postés 90 Statut Membre
     
    Salut
    Ça aurait été mieux que tu mette des "delete on cascade" lors de la création de tes tables.
    0
    1. Annie
       
      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
      0
    2. ProgMad Messages postés 90 Statut Membre
       
      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.
      0
  2. Jean-Marie
     
    un truc du genre
    ALTER TABLE nom_table DROP CONSTRAINT nom_cle

    devrait marcher
    0