2


親/子テーブルがあり、その PK と FK を新しい値に更新したいと考えています。問題は、古い親 ID が古い ID と一致する新しいものと同期する必要があることです。それで:

このデータを一時テーブルとして持っています:

OldID |  OldParentID |  NewID | NewParentID
  1         0            10         NULL
  2         0            11         NULL
  3         2            13         NULL
  4         3            14         NULL

次のように NewParentID を更新する必要があります。

OldID |  OldParentID |  NewID | NewParentID
  1         0            10         0
  2         0            11         0
  3         2            13         11
  4         3            14         13
4

1 に答える 1

0
declare @T table
(
  OldID int, 
  OldParentID int, 
  NewID int, 
  NewParentID int
)

insert into @T 
select 1, 0, 10, null union all
select 2, 0, 11, null union all
select 3, 2, 13, null union all
select 4, 3, 14, null

update T1
  set T1.NewParentID = coalesce(T2.NewID, 0)
from @T as T1
  left outer join @T as T2
    on T1.OldParentID = T2.OldID
于 2011-07-09T08:34:13.823 に答える