问题在于@ dep1Id和@ dep1Id是标量,并且仅保留两个基于集合的插入中的最后一个值。
由于这是一个关闭,您可能应该将其作为光标
DECLARE CURSOR @curs FORSELECt c1,c2,c3,c4,c5 FROM OldDatebaseopen @cursfetch next from @curs into@c1,@c2,@c3,@c4,@c5 --declare these!while @@fetch_status <> 0BEGININSERT INTO DependentA (column1, column2) VALUES @c1, @c2SELECt @dep1Id = Scope_Identity()INSERT INTO DependentB (column3, column4) VALUES @c3, @c4SELECT @dep2Id = Scope_Identity()INSERT INTO baseTable (column5, department1Id, department2Id) @c5, @dep1Id, @dep2Idfetch next from @curs into@c1,@c2,@c3,@c4,@c5ENDclose @cursdeallocate @curs
我的光标语法可能充满了错误,但是您明白了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)