使用引用标识列的外键将数据迁移到Azure

时间:2011-09-18 17:17:07

标签: sql sql-server tsql azure

我希望将我的内部部署数据库迁移到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 ......)并且混淆了我的外键关系。我想防止这种混乱的外键关系。

关于如何做到这一点的任何想法?

2 个答案:

答案 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。