Мне нужно создать хранимую процедуру в SQL Server 2008, которая будет обновлять таблицу на основе некоторого значения.Хитрость в том, что мне нужно рекурсивно искать в таблице, пока не найду нужное значение, а затем обновить текущую запись.Например, у меня есть таблица Employees, которая содержит 3 столбца:
EmployeeId
ManagerId
FamilyId
Для каждого EmployeeId в таблице я хочуполучить его ManagerId.Затем, если ManagerID! = 0, перейдите и получите ManagerId текущего ManagerId (каждый ManagerId будет указывать на EmployeeId) - продолжайте, пока я не доберусь до менеджера верхнего уровня (где ManagerId == 0).
Как только я найду менеджера верхнего уровня, я хочу обновить столбец FamilyId в исходной записи, запустившей процесс, на значение последнего EmployeeId вышеуказанного процесса.
В основном мне нужносделать это с каждой записью в таблице.Я пытаюсь установить для FamilyId значение корневого менеджера для всех сотрудников и менеджеров в иерархии.
Я не уверен, должен ли я использовать курсор или CTE, чтобы сделать это - или просто сделатьэто в коде.
Любая помощь очень ценится.
Спасибо!