私があなたの問題を理解していれば、挿入を 2 段階で行うことができます。最初にコメントを挿入して、テーブルに古い ID を保持し、古いコメントを参照して子 (古い返信) を 2 番目に挿入します。
新しいテーブルを変更したくない場合は、ID に別のテーブルを使用することもできます
if object_id('oldReply') is not null
drop table oldReply
if object_id('oldComment') is not null
drop table oldComment
if object_id('newComment') is not null
drop table newComment
go
create table oldComment (
id integer identity(1,1) primary key,
msg varchar(64)
)
create table oldReply(
id integer identity(1,1) primary key,
msg varchar(64),
commentId integer references oldComment(id)
)
create table newComment (
id integer identity(1,1) primary key,
msg varchar(64),
parentId integer references newComment(id),
oldCommentId integer
)
go
insert into oldComment(msg) values ('m1'), ('m2'), ('m3')
insert into oldReply(msg, commentId) values ('r1', 1) , ('r2', 2), ('r3', 3)
select * from oldComment
select * from oldReply
insert into
newComment( msg, oldCommentId)
select msg, id from oldComment
;
insert into newComment (msg, parentId)
select oldREply.msg, parent.id
from oldReply
inner join newComment parent on oldReply.commentId = parent.oldCommentId
;
--to check
select * from newComment