Comment faire pour supprimer des lignes dans les tables qui contiennent les clés étrangères à d'autres tables
Suppose qu'il ya une table principale contenant une clé primaire et il y a une autre table qui contient une clé étrangère à cette table principale. Donc, si on supprime la ligne de la table principale, il va supprimer la table enfant aussi.
Comment puis-je écrire cette requête?
- la base de données que vous utilisez?
- base de données utilisée par moi: sql server 2008
- je veux Requête simple je ne veux pas utiliser, stocker procédure
- je ne pense pas qu'il y est une version simplifiée de ce qui Lieven a mentionné ci-dessous. Juste pour préciser, la CASCADE de l'option de SUPPRESSION n'est pas une partie de la requête, la partie de votre Enfant tableau instruction DDL. Reportez-vous à mssqlcity.com/Articles/General/using_constraints.htm pour un exemple
Vous devez vous connecter pour publier un commentaire.
De votre question, je pense qu'il est sûr de supposer que vous avez LES SUPPRESSIONS EN CASCADE allumé.
Tout ce qui est nécessaire dans ce cas est
Vous moteur de base de données va prendre soin de la suppression de la correspondante de référencement de dossiers.
dependencies
et ensuite supprimer le parent.Tout d'abord, en tant que l'une des données en temps-épuration de l'exercice, de supprimer les orphelins lignes par exemple
Deuxième, d'un schéma de changement de l'exercice, ajouter le
ON DELETE CASCADE
référentiel d'action pour la clé étrangère sur la table de référence par exempleEnsuite, pour toujours, les lignes de la font référence à des tables seront automatiquement supprimés lorsque leur référencé ligne est supprimée.
Vous pouvez modifier une contrainte de clé étrangère avec delete cascade option comme illustré ci-dessous. Ceci va supprimer les chind lignes de la table liée à la maîtrise de lignes de la table quand il est supprimé.
Si vous avez multiplier les lignes à supprimer et vous ne voulez pas modifier la structure de vos tables
vous pouvez utiliser le curseur.
1-Vous devez d'abord sélectionner les lignes à supprimer(dans un curseur)
2-Ensuite, pour chaque ligne du curseur, vous supprimer le référencement de lignes, et après que la suppression de la ligne lui-meme.
Ex:
espoir est utile
Besoin de mettre la clé étrangère de l'option comme sur delete cascade...
dans les tableaux qui contient les colonnes de clé étrangère.... Il faut définir au moment de la création de la table ou ajouter plus tard à l'aide de l'instruction ALTER table