現在、既存のオブジェクトの正確なコピーを作成するストアド プロシージャをコーディングしています。オブジェクトは複数のテーブルを使用します。これらのテーブルのうち 2 つは多対多の関係を使用します。
使用されるスキーマは次のとおりです。
---------------------------------------
tbl_AssociationA
---------------------------------------
ID | ObjectID | Description
---------------------------------------
1 | 12 | 'Some description'
2 | 12 | 'Some text here'
3 | 13 | 'Some words here'
...
---------------------------------------
---------------------------------------
tbl_AssociationB
---------------------------------------
ID | ObjectID | LabelText
---------------------------------------
1 | 12 | 'Foo'
2 | 12 | 'Foo foo'
3 | 13 | 'Some words...'
4 | 13 | 'Some other Foos'
5 | 14 | 'Some foos here'
6 | 12 | 'Some other words'
...
---------------------------------------
-------------------------
tbl_RelationAB
-------------------------
ID_A | ID_B
-------------------------
1 | 1
2 | 1
2 | 2
2 | 6
3 | 4
3 | 3
...
------------------------
Object 12
ここで、 ( と呼びましょう) のコピーを作成したいとしましょうObject X
。をさらに変更したくないので、tbl_AssociationA
とからレコードをコピーしたいと思います。tbl_AssociationB
Object X
Object 12
tbl_AssociationA
したがって、とで新しいレコードを作成するにはtbl_AssociationB
、次のようにします。
INSERT INTO tbl_AssociationA
SELECT @NewId,Description FROM tbl_AssociationA WHERE ObjectID=@NewId;
INSERT INTO tbl_AssociationB
SELECT @NewId,LabelText FROM tbl_AssociationB WHERE ObjectID=@NewId;
tbl_RelationAB
これらの新しく作成されたレコードを使用するにはどうすれば挿入できますか。と の列ID
は でtbl_AssociationA
あるtbl_AssociationB
ことに注意してくださいIDENTITY
。