J'ai besoin d'aide pour faire une requête où je mets à jour une ligne initialement basée sur la description et tous les parents, si existe.Mettre à jour une ligne et tous les 'parents' (s'il existe)
Ma tableItemMenu:
Id
DescName
IdParent
BolActive
Donc, je dois activer (réglage BolActive = 1) une ligne où Description je vais informer dans la requête, puis mettre à jour toutes les lignes si IdParent est pas nul/vide et si elle existe dans la même table (IdParent = Id).
Quelque chose comme:
Mise à jour ItemMenu mis BolActive = 1 où DescName = 'MyMenu'
alors je dois vérifier si IdParent de Select * from ItemMenu où DescName = 'MyMenu' existe
Si oui, je vais Mise à jour ItemMenu = 1 BolActive définir où IdParent (de la précédente select) = Id et vérifier à nouveau si IdParent existe ici ... jusqu'à ce que IdParent est nulle/bl ank et il s'arrête
Est-ce possible?
P.s. Je ne peux pas changer la structure de la table.
Bien sûr, il est possible. Vous pouvez le faire avec un cte récursif. Si vous avez besoin d'aide, il serait très utile de pouvoir publier le ddl et quelques exemples de données. –