用Guid克隆树结构

时间:2019-07-15 23:49:23

标签: sql sql-server tsql

我试图将树结构克隆到另一个表,但是问题是原始表的GUID为ParentId和Id,而我要克隆的新表或表的int为ParentId和Id。我正在尝试找到解决方案,因此欢迎任何帮助 我尝试了下一个解决方案,但不幸的是无法正常工作

<a href=...>

如果不可能通过单个查询完成此操作,那么由于数据量较大,任何其他解决方案都可以用光标:)接受

这里是Sample,因此查询(SP)的输出应为树结构,其中int-s为Id,ParentId

1 个答案:

答案 0 :(得分:3)

如何?

;with cte as 
(
    select row_number() over(order by id) rn, *
    from tableA
)

select c1.rn id, c2.rn parentid, c1.name
from cte c1
left join cte c2 on c1.parentid = c2.id

或者您可以简单地使用checksum()函数:

select checksum(id) id, checksum(parentid) parentid, name
from tableA

请注意,第二种方法可能会导致碰撞。