2010-10-28 6 views
0

J'ai un tas de données dans une table qui sert de parent (clé primaire dans la relation de clé étrangère) à plusieurs autres tables. Je veux essentiellement passer en revue cette table et essayer de supprimer les enregistrements qui n'ont pas d'enfants. J'ai déjà supprimé les enfants, donc il y a des parents qui n'ont pas d'enfants.SQL Server: Essayez de supprimer

Si un enregistrement peut être supprimé, supprimez-le, sinon passez à l'enregistrement suivant et ne me montrez pas que vous ne pouvez pas supprimer l'erreur.

Ce n'est pas n'importe quel type de besoin de production, je ne faisais que déconner avec un code de test et supprimé certains enfants, maintenant je veux supprimer leurs parents tristes. Cela peut être effectué en SQL ou en C# linq. Je veux simplement juste effacer mes données non pertinentes.

+0

L'euthanasie des données est moralement discutable. Je recommande de jumeler vos parents tristes avec des orphelins. –

+0

Il n'y a pas d'orphelins, cela viole la contrainte de clé étrangère. Si seulement la vie impose des contraintes de clé étrangères. – Shawn

Répondre

3

Vous pouvez toujours essayer une requête comme

DELETE FROM ... WHERE NOT EXISTS (... 
2

Vous pouvez utilisateur une jointure externe - Disons que vous avez maître et de l'enfant devenant membre id

delete m 
from master m 
left outer join child c 
on m.id = c.id 
where c.id is null 

Qu'est-ce que cela ne se rejoignent tous les enregistrements de maître avec l'enfant et où l'enfant n'existe pas, il met des nulls. Vous avez juste besoin de sélectionner ceux où l'enfant est nul

Questions connexes