Bonjour,
je désire supprimer une contrainte de clés étrangères. Le problème est que le nom de la contrainte a été générée automatique avec la commande :
Pour la supprimer pas de problème c'est :
Code : Sélectionner tout - Visualiser dans une fenêtre à part ALTER TABLE table ADD FOREIGN KEY Cle REFERENCES Price Cle;
Pour récupérer le nom de la contrainte c'est:
Code : Sélectionner tout - Visualiser dans une fenêtre à part ALTER TABLE Job DROP CONSTRAINT nom_contrainte
Jusque là facile....
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 SELECT CONSTRAINT_NAME FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS WHERE (TABLE_NAME = 'JOB') AND (CONSTRAINT_NAME LIKE '%Cle%')
Maintenant le problème c'est que je veux faire ca en automatique.
J'ai trouvé cette facon de faire qui m'affiche a la fin la bonne requete :
Mais j'ai l'impression que la commande après ne s'exécute pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 SELECT 'ALTER TABLE table DROP CONSTRAINT '+ CONSTRAINT_NAME FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS WHERE (TABLE_NAME = 'JOB') AND (CONSTRAINT_NAME LIKE '%Cle%')
J'ai aussi essayé de passer par des procédures et fonction avec pointeur sur le résultat mais je n'y arrive pas non plus quelqu'un aurait-il une idée?
Merci d'avance.
Partager