我希望将我的内部部署数据库迁移到azure。但是,我的内部部署DB有一个表格Table1,其列为
ID int identity(1,1) Not Null,
表'Table2'中的列'column1'在列Table1.ID上有外键约束
当我的Table1.ID列没有连续值时,我遇到了问题。
例如,Table1.ID具有值(1,2,4,5,6 ......)
如果我正常插入Azure表,我在Azure上的Table1.ID将是(1,2,3,4,5 ......)并且混淆了我的外键关系。我想防止这种混乱的外键关系。
关于如何做到这一点的任何想法?
答案 0 :(得分:1)
在进行插入之前,请为该表启用标识插入:
SET IDENTITY_INSERT Table1 ON
然后,您可以在插入中包含ID列,以便ID值保持不变。稍后,当您插入具有Table2的FK引用的行时,ID值将是相同的。
完成后,请确保完成后将身份插入关闭:
SET IDENTITY_INSERT Table1 OFF
答案 1 :(得分:0)
考虑使用SQL Azure Migration Wizard,它将负责为您迁移数据。
你特定问题的根源,正如@Mike Mooney建议的那样,你需要使用IDENTITY_INSERT。