这是一个很简单的问题,但我无法弄清楚这样做的语法。我正在做一些数据迁移,我在一个表中有一些现有的记录,我想链接到一个全新的父表。
假设我有两张桌子:
declare @Parent table
(
ID int identity(1,1),
DummyField int
)
declare @Child table
(
ID int identity(1,1),
ParentID int, -- assume this is a new column, all nulls
DummyField int
)
对于每个现有的子记录,插入一个新的父记录并更新Child以链接到它。
就是这样。这很简单,但如果不使用游标我就无法理解。
答案 0 :(得分:1)
Seudo SQL逻辑似乎很简单......
insert in to parent.
update childern
set ParentID = select @@IDENTITY
where ParentID = @previousParentId
除非我错过了什么?
答案 1 :(得分:0)
孩子和父母的关系缺失
你要使用输出子句来实现,
尝试这样,
declare @output table (parentid int)
insert into parent (parentid)
output inserted.parentid into @output
-- values
update c
set ParentID = o.parentid
from children c
inner join @output o on c.parentid=o.parentid