开发者

TSQL A recursive update?

开发者 https://www.devze.com 2023-01-28 00:24 出处:网络
I\'m wondering if exists a recursive update in tsql (开发者_开发问答CTE) IDparentID value ---------- -----

I'm wondering if exists a recursive update in tsql (开发者_开发问答CTE)

ID  parentID value
--  -------- -----
1   NULL     0
2   1        0
3   2        0
4   3        0
5   4        0
6   5        0

I it possible to update the column value recursively using e.g CTE from ID = 6 to the top most row ?


Yes, it should be. MSDN gives an example:

USE AdventureWorks;
GO
WITH DirectReports(EmployeeID, NewVacationHours, EmployeeLevel)
AS
(SELECT e.EmployeeID, e.VacationHours, 1
  FROM HumanResources.Employee AS e
  WHERE e.ManagerID = 12
  UNION ALL
  SELECT e.EmployeeID, e.VacationHours, EmployeeLevel + 1
  FROM HumanResources.Employee as e
  JOIN DirectReports AS d ON e.ManagerID = d.EmployeeID
)
UPDATE HumanResources.Employee
SET VacationHours = VacationHours * 1.25
FROM HumanResources.Employee AS e
JOIN DirectReports AS d ON e.EmployeeID = d.EmployeeID;
0

精彩评论

暂无评论...
验证码 换一张
取 消