早些时候,我们在 SQL Server 2008 中有一个数据库,上个月我们将它移到了 SQL Azure。
在表中,其中一列设置为标识并设置了自动增量。此列也是主键,在许多其他表中被引用为外键。
当我们的数据库在 SQL Server 2008 中时,此列值已正确递增,并且生成值的顺序没有问题。
将我们的数据库移动到 SQL Azure 后,生成的值突然跳跃为
1687 1688 1689 10001 10002 10003。. 20100 20101
在搜索中,我发现在 SQL Server 2012 和 SQL Azure 中不能保证“身份增量”。SQL Azure 中也没有 SEQUENCE 功能(请参阅:http ://connect.microsoft.com/SQLServer/feedback/details/723601/support-native-sequences-in-sql-azure )。
我尝试添加一个新列并删除有问题的列,但由于它是主键并依赖于其他表,因此我无法删除此列。
这个迁移的数据库是一个业务关键的数据库。请让我知道尽快解决此问题的有效方法。