j'ai 2 tables liés et je veux suprimer des lignes en commun dans les 2 les
tables pour un critére table 1 "materiel" statut = detruit
le probléme est que le point commun est un numéro de clé "Clé materiel",
donc comment détruire les éléments de la table 2 qui n'exiterons plus dans la
table 1 aprés supression des lignes avec statut détruit dans la table 1
Table 1 "materiel"
Clé materiel
N°serie
Date achat
Statut
Table 2 "Historique"
Ancien Utilisateur
nouvel utilisateur
date mouvement
Clé materiel
J'ai besoin d'une explication simple je ne connais pas le SQL. je vais
certainement travailler en copier coller avec vos propositions.
Je n'ai pas d'autres moyens pour faire cet manip l'interface utilisateur de
l'application ne sais pas faire le nettoyage des tables jointes.
Ceci donne donc une table 2 avec des lignes sans liaisons avec la table 1
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Jean-Nicolas BERGER
dans un premier temps, ouvrir une transaction, pour qu'en cas de souci lors de la suppression du matériel, il ne reste pas de matériel qui aurait perdu son historique
BEGIN TRANSACTION
Ensuite, effacer les éléments de la table Historique
delete Historique from Historique, materiel where Historique.[Clé materiel]=materiel.[Clé materiel] and StatutÞtruit
Ensuite, effacer le materiel
delete materiel from materiel where StatusÞtruit
Enfin, valider la transaction
COMMIT TRANSACTION
Voilà.
Question au passage, as-tu bien une contrainte de clé étrangère sur ta colonne Clé materiel ? Si oui, tu n'aurais de toute manière pas pu effacer le matériel si l'historique était encore présent. Si non, c'est pas bien (mauvais modèle de données), et il faudrait que tu vois les historiques sans matériel associé
select Historique.* from Historique left join materiel on Historique.[Clé materiel]=materiel.[Clé materiel] where materiel.[Clé materiel] is null
Remarque complémentaire : renseigne-toi sur l'option ON DELETE CASCADE pour la définiton de la clé étrangère...
JN.
"Richard" a écrit dans le message de news:
Bonjour.
j'ai 2 tables liés et je veux suprimer des lignes en commun dans les 2 les tables pour un critére table 1 "materiel" statut = detruit
le probléme est que le point commun est un numéro de clé "Clé materiel", donc comment détruire les éléments de la table 2 qui n'exiterons plus dans la table 1 aprés supression des lignes avec statut détruit dans la table 1
Table 1 "materiel"
Clé materiel N°serie Date achat Statut
Table 2 "Historique"
Ancien Utilisateur nouvel utilisateur date mouvement Clé materiel
J'ai besoin d'une explication simple je ne connais pas le SQL. je vais certainement travailler en copier coller avec vos propositions.
Je n'ai pas d'autres moyens pour faire cet manip l'interface utilisateur de l'application ne sais pas faire le nettoyage des tables jointes. Ceci donne donc une table 2 avec des lignes sans liaisons avec la table 1
Merci de votre aide
dans un premier temps, ouvrir une transaction, pour qu'en cas de souci lors
de la suppression du matériel, il ne reste pas de matériel qui aurait perdu
son historique
BEGIN TRANSACTION
Ensuite, effacer les éléments de la table Historique
delete Historique from Historique, materiel where Historique.[Clé
materiel]=materiel.[Clé materiel] and StatutÞtruit
Ensuite, effacer le materiel
delete materiel from materiel where StatusÞtruit
Enfin, valider la transaction
COMMIT TRANSACTION
Voilà.
Question au passage, as-tu bien une contrainte de clé étrangère sur ta
colonne Clé materiel ? Si oui, tu n'aurais de toute manière pas pu effacer
le matériel si l'historique était encore présent. Si non, c'est pas bien
(mauvais modèle de données), et il faudrait que tu vois les historiques sans
matériel associé
select Historique.* from Historique left join materiel on Historique.[Clé
materiel]=materiel.[Clé materiel] where materiel.[Clé materiel] is null
Remarque complémentaire : renseigne-toi sur l'option ON DELETE CASCADE pour
la définiton de la clé étrangère...
JN.
"Richard" <Richard@discussions.microsoft.com> a écrit dans le message de
news: 42E9BB12-6F64-4419-BF47-99253F3D841F@microsoft.com...
Bonjour.
j'ai 2 tables liés et je veux suprimer des lignes en commun dans les 2 les
tables pour un critére table 1 "materiel" statut = detruit
le probléme est que le point commun est un numéro de clé "Clé materiel",
donc comment détruire les éléments de la table 2 qui n'exiterons plus dans
la
table 1 aprés supression des lignes avec statut détruit dans la table 1
Table 1 "materiel"
Clé materiel
N°serie
Date achat
Statut
Table 2 "Historique"
Ancien Utilisateur
nouvel utilisateur
date mouvement
Clé materiel
J'ai besoin d'une explication simple je ne connais pas le SQL. je vais
certainement travailler en copier coller avec vos propositions.
Je n'ai pas d'autres moyens pour faire cet manip l'interface utilisateur
de
l'application ne sais pas faire le nettoyage des tables jointes.
Ceci donne donc une table 2 avec des lignes sans liaisons avec la table 1
dans un premier temps, ouvrir une transaction, pour qu'en cas de souci lors de la suppression du matériel, il ne reste pas de matériel qui aurait perdu son historique
BEGIN TRANSACTION
Ensuite, effacer les éléments de la table Historique
delete Historique from Historique, materiel where Historique.[Clé materiel]=materiel.[Clé materiel] and StatutÞtruit
Ensuite, effacer le materiel
delete materiel from materiel where StatusÞtruit
Enfin, valider la transaction
COMMIT TRANSACTION
Voilà.
Question au passage, as-tu bien une contrainte de clé étrangère sur ta colonne Clé materiel ? Si oui, tu n'aurais de toute manière pas pu effacer le matériel si l'historique était encore présent. Si non, c'est pas bien (mauvais modèle de données), et il faudrait que tu vois les historiques sans matériel associé
select Historique.* from Historique left join materiel on Historique.[Clé materiel]=materiel.[Clé materiel] where materiel.[Clé materiel] is null
Remarque complémentaire : renseigne-toi sur l'option ON DELETE CASCADE pour la définiton de la clé étrangère...
JN.
"Richard" a écrit dans le message de news:
Bonjour.
j'ai 2 tables liés et je veux suprimer des lignes en commun dans les 2 les tables pour un critére table 1 "materiel" statut = detruit
le probléme est que le point commun est un numéro de clé "Clé materiel", donc comment détruire les éléments de la table 2 qui n'exiterons plus dans la table 1 aprés supression des lignes avec statut détruit dans la table 1
Table 1 "materiel"
Clé materiel N°serie Date achat Statut
Table 2 "Historique"
Ancien Utilisateur nouvel utilisateur date mouvement Clé materiel
J'ai besoin d'une explication simple je ne connais pas le SQL. je vais certainement travailler en copier coller avec vos propositions.
Je n'ai pas d'autres moyens pour faire cet manip l'interface utilisateur de l'application ne sais pas faire le nettoyage des tables jointes. Ceci donne donc une table 2 avec des lignes sans liaisons avec la table 1