我目前正在編寫一個存儲過程,它創建一個現有對象的確切副本。 對象使用多個表,在這些表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 [email protected];
INSERT INTO tbl_AssociationB
SELECT @NewId,LabelText FROM tbl_AssociationB WHERE [email protected];
我怎樣才能插入tbl_RelationAB
使用這些新創建的記錄。請注意,tbl_AssociationA
和tbl_AssociationB
中的列ID
是IDENTITY
。
使用scope_identity檢索Iden http://msdn.microsoft.com/en-us/library/ms190315.aspx – Paparazzi 2013-03-04 17:00:53