親テーブルと子テーブルがあります。子を挿入するための親IDのIDを取得する方法
目的は、新しい主キーを除いてレコードを複製することです。
オリジナルのテーブルの挿入後
Parent(id)
1
Child(id,parentId, data)
1,1
2,1
:
Parent
1
2
Child
1,1
2,1
3,2
4,2
私はそれをどのように行うのですか?私が問題を抱えている部分は、子レコードで使用するための新しい親キーを取得することです。
これはこれまで私が思い付いたことです。アプローチ以下
--DECLARE VARS
declare @currentMetadataDocumentSetId int = 1, --Ohio
@newMetadataDocumentSetid int = 3; --PA
--CLEANUP
IF OBJECT_ID('tempdb..#tempFileRowMap') IS NOT NULL
/*Then it exists*/
DROP TABLE #tempFileRowMap
--Remove existing file row maps.
delete from file_row_map where metadata_document_set_id = @newMetadataDocumentSetid;
--Create a temptable to hold data to be copied.
Select [edi_document_code],
[functional_group],
[description],
3 as [metadata_document_set_id],
[document_name],
[incoming_file_row_subtype],
[metadata_document_id],
[document_subcode],
[outgoing_file_row_subtype],
[asi_type_code],
[asi_action_code],
[metadata_document_set],
file_row_map_id as orig_file_row_map_id
into #tempFileRowMap
from file_row_map fileRowMap
where metadata_document_set_id = @currentMetadataDocumentSetId;
--Select * from #tempFileRowMap;
Insert into file_row_map select
[edi_document_code],
[functional_group],
[description],
[metadata_document_set_id],
[document_name],
[incoming_file_row_subtype],
[metadata_document_id],
[document_subcode],
[outgoing_file_row_subtype],
[asi_type_code],
[asi_action_code],
[metadata_document_set]
from #tempFileRowMap
--Show Results
Select * from file_row_map fileRowMap where fileRowMap.metadata_document_set_id = @newMetadataDocumentSetid
--Update Detail
Select
[file_row_map_id],
[file_row_column],
[element_code],
[element_metadata_id],
[col_description],
[example],
[translate],
[is_used],
[is_mapped],
[page_num],
[subcode],
[qualifier],
[loop_code],
[loop_subcode],
[default_value],
[delete_flag]
into #tempFileRowMapDetail
from [dbo].[file_row_map_detail] d
left join #tempFileRowMap m
on m.orig_file_row_map_id = d.file_row_map_id
select * from #tempFileRowMapDetail
[これは役立つかもしれない](http://stackoverflow.com/a/38217498/3094533) –
がChild_ID列自動ナンバーですか? –
@ZoharPeled、マージの面白いリンク。以前は「マージ」について知らなかった。 –