10
votes

Supprimer des données d'une table, joignant deux tables

Je travaille avec des données assez sensibles, je veux donc être absolument sûr que je le fais correctement.

J'essaie de supprimer les rangées d'une table associée à une autre table p> Le seul moyen d'associer la table est de rejoindre deux autres tables ... p>

Voici la requête exacte: P>

DELETE tt.Transaction_Amount, tt.Transaction_ID
  FROM ItemTracker_dbo.Transaction_Type tt
  JOIN ItemTracker_dbo.Transaction t ON tt.Transaction_ID = t.Transaction_ID
  JOIN ItemTracker_dbo.Purchase p ON p.Transaction_ID = tt.Transaction_ID
  JOIN ItemTracker_dbo.Item i ON i.Item_ID = p.Item_ID
 WHERE i.Client_ID = 1


3 commentaires

Vous ne semblez pas utiliser la table de transaction que vous avez rejoint ailleurs dans votre requête. Est-ce intentionnel?


Assurez-vous d'avoir sauvegardé votre donnée / base de données avant de faire une suppression.


Transaction_type est une table? On dirait que vous essayez de supprimer 2 colonnes d'une table plutôt que de rangées ...


4 Réponses :


0
votes

Vous devez le composer initialement comme une requête pour renvoyer les rangées d'intérêt. Une fois que tout est tout débigué, convertissez-le en une suppression.


0 commentaires


24
votes

Vous devez supprimer des lignes de TT , pas des colonnes individuelles: xxx


4 commentaires

Vous devez spécifier les tables à supprimer, avec des noms ou des alias, entre Supprimer et à partir de dans une suppression multi-table.


@ md5sum: c'est pour les suppresses multi-table, mais je ne sais pas non plus si cela fait un diff dans cet exemple


@Davidm Great Réponse et commentaire, a résolu mon problème presque 3 ans plus tard =)


@Windle - Bien, j'adore quand une vieille réponse aide toujours les gens à sortir.



0
votes

Vérifiez avec Sélectionnez la requête, puis avant d'exécuter Supprimer la requête sur les données critiques, obtenez une sauvegarde de cette table. si simple que si tout se passe mal, alors vous pouvez au moins sauvegarder.


0 commentaires