J'ai deux tables appelées TableA et TableB.Suppression de plusieurs enregistrements de deux tables
TableA a les champs suivants:
TableA_ID
FileName
TableB a les champs suivants:
TableB_ID
TableA_ID
CreationDate
Il existe un lien clé étrangère entre les deux tables sur le terrain TableA_ID
J'ai besoin pour supprimer les enregistrements des deux tables. Je dois regarder le "CreationDate" sur la TableB et si c'est après une certaine date, supprimer cet enregistrement. Je devrai également supprimer l'enregistrement dans la TableA avec le même TableA_ID que l'enregistrement dans la TableB
Il peut y avoir plusieurs enregistrements dans la TableB qui utilisent le TableA_ID (une relation de un à plusieurs). Je ne peux donc pas supprimer l'enregistrement dans la TableA si les entrées de la TableB l'utilisent encore. Je sais que cela ne peut pas être fait dans une seule déclaration, mais je suis heureux de le faire dans une transaction. Le problème que j'ai est que je ne suis pas sûr de savoir comment faire cela. J'utilise MS SQL Server 2008. Je ne veux pas utiliser de triggers si possible.
+1 La solution de Shannon résout la lacune de la clause WHERE ... GROUP BY dans ma solution ci-dessous. – NYSystemsAnalyst
Pour une raison quelconque, cette opération échoue en raison de la dernière instruction "Where". Je vais jouer avec, mais quelqu'un peut-il repérer s'il manque quelque chose? – Retrocoder
@Retrocoder: Désolé, ce dernier endroit où il a été laissé en vrac et pas utile. Edité pour réparer. –