【发布时间】:2009-06-15 13:05:30
【问题描述】:
我正在尝试将一些数据从旧数据库中的两个表迁移到新数据库。
问题是我希望在新数据库中为要导入的第一个表生成新的主键。这很简单。
但是旧数据库中的第二张表对第一张表有外键依赖。所以当我想从第二个表迁移旧数据时,外键不再匹配。
是否有任何技巧/最佳实践可以帮助我迁移数据?
严重注意:我无法更改新表的当前架构,新表没有任何“旧 id”列。
让我们使用下表架构:-
Old Table1 New Table1
ParentId INT PK ParentId INT PK
Name VARCHAR(50) Name VARCHAR(50)
Old Table 2 New Table 2
ChildId INT PK ChildId INT PK
ParentId INT FK ParentId INT FK
Foo VARCHAR(50) Foo VARCHAR(50)
所以表架构是相同的。
想法?
编辑:
对于那些询问的人,RDBMS 是 Sql Server 2008。我没有指定软件,因为我希望我能用一些通用的 T-Sql 得到一个不可知的答案:P
【问题讨论】:
-
Name 和 Foo 是唯一的吗?如果是这样,您可以加入其中以找出旧 ID 是什么...
-
哪个 RDBMS?您使用什么方法导入数据?
-
@Pure.Krome:Egads,伙计,我不认为你可以在这里绕过光标。讨厌这么说,但我认为这是你最好的解决方案。我只希望你有相对较小的数据集。
-
没有问题 :) 光标很好。这是一次迁移。我会确保将其设为 FAST_FORWARD 游标。只是好奇是否还有其他技巧偷窥使用。干杯队友:)
标签: sql sql-server migration