【发布时间】:2013-11-10 23:57:45
【问题描述】:
早些时候,我们在 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)。
我尝试添加一个新列并删除有问题的列,但由于它是主键并依赖于其他表,因此我无法删除此列。
这个迁移的数据库是一个业务关键的数据库。请尽快告诉我解决此问题的有效方法。
【问题讨论】: