Ton*_*ony 3 t-sql recursion common-table-expression
我想知道在tsql(CTE)中是否存在递归更新
ID parentID value
-- -------- -----
1 NULL 0
2 1 0
3 2 0
4 3 0
5 4 0
6 5 0
Run Code Online (Sandbox Code Playgroud)
我可以value使用例如从ID = 6的CTE到最顶行来递归地更新列吗?
是的,它应该是.MSDN给出了一个例子:
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;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4328 次 |
| 最近记录: |