Source Table
TableSource
SOurceID Name ParentId
Target Table
TableTarget
RefId ParentRefId SourceId Name
-- RefId は、TableReference からの外部キーです。
Table Reference
TableReference
RefID -- Auto increment IdentityCOlumn
シナリオ
そのような方法で TableSource と TableTArget をマージ (挿入/更新) する必要があります
1. On Each insert into TableTarget, it should insert a new RefId into TableReference and then Copy that RefId into TableTarget's RefId Column.
2.ParentRefId also needs to be populated on the basis of ParentID in TableSource I-E
TableSource -- TableSource の最初に次のレコードがあるとします。
SOurceID Name ParentId
1A Group1 NULL
2B GROUP2 NULL
3C Department1 1A
4D Department2 2B
5E Section1 3C
6F Section2 4D
-- I want to see TableTarget as following
RefId SourceId Name ParentRefId
1 1A Group1 NULL as Group1 doesn't has a parent
2 2B GROUP2 NULL as Group1 doesn't has a parent
3 3C Department1 1 -- SourceID 3C's Parent is 1A and RefID of 1A is 1
4 4D Department2 2 -- SourceID 4D's Parent in TableSOurce is 2B so we need to find the RefId of 2B in TableTarget to insert it here. That's 2
5 5E Section1 3 -- PArent of 5E is 3C and RefId of 3C is 3
6 6F Section2 4 -- PArent of 6F is 4D and RefID of 4D is 4
解決:
Name と SourceID のマージは問題ではありません。問題は、TableTarget に挿入するたびに TableReference に新しい RefID を挿入し、それをコピーして tableTarget に挿入する必要があるときに始まります。2 番目の問題は、ParentRefID を入力する方法です。これに関する任意の入力は非常に高く評価されます
* これを行う最善の方法は何でしょうか ** カーソルが必要ですか? 最初に RefID でロードし、ロードする前に ParentRefId を処理する必要がありますか?*