트리 (bill of materials 스타일)를 만들고 일부 데이터를 변환 중입니다. 그것을 채우기 위해 나는 CTE를 사용하고 지금 T-SQL : ID 열이있는 CTE
BillOfMaterials
- BomId
- ParentId : 다음 표를 고려
with BOM as ( select @@identity as BomId, null as ParentId <some other fields> from MyTable union all select @@identity as BomId, parent.BomId as ParentId, some other fields from MyTable2 inner join BOM parent on blabla) insert into MyTable3 select * from BOM
문제는 다음 @@ identity는 나에게 조합 앞에 삽입 된 마지막 레코드의 신원만을 알려줍니다.
신원을 확인하려면 어떻게해야합니까? Table3은 수정할 수 있지만 Table1이나 Table2는 수정할 수 없습니다.
row_number()
은 재귀 쿼리에 대해 정의되지 않은 동작을하므로 여기서는 사용할 수 없습니다.GUID를 사용할 수 있다는 것을 알고 있습니다. 유일한 옵션입니까?
잘 연주했습니다. 고마워요! :) – Bas