Как сопоставить столбцы в таблице самообъединения! - PullRequest
2 голосов
/ 09 июля 2011

У меня есть родительская / дочерняя таблица и я хочу обновить свои PK и FK до новых значений.проблема заключается в том, что старые идентификаторы родителей должны синхронизироваться с новыми, совпадающими со старыми идентификаторами.Итак:

У меня есть эти данные в качестве временной таблицы:

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

1 Ответ

0 голосов
/ 09 июля 2011
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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...