我有一张带有自引用关系的表,
ID parentID UserId Title 1 null 100 A 2 1 100 B 3 2 100 C 4 2 100 D 5 null 100 E 6 5 100 F
我想将ID = 1及其子节点的所有记录的UserId从100更新为101,所以我想拥有
ID parentID UserId Title 1 null 101 A 2 1 101 B 3 2 101 C 4 2 101 D 5 null 100 E 6 5 100 F
如何在T-SQL中做到这一点?
您可能想使用common table expression允许您生成递归查询的。
common table expression
例如:
;with cte as ( select * from yourtable where id=1 union all select t.* from cte inner join yourtable t on cte.id = t.parentid ) update yourtable set userid = 101 where id in (select id from cte)