0

У меня есть Windows Server 2012 с SQL Server 2012 и IIS с 4 приложениями Silverlight (4). С одного дня одна из приложений Silverlight пропустила 10.000 номеров.Автоматический прирост первичного ключа SQL Server 2012 пропущен 10.000

Вот картина DataGrid, чтобы показать, что результат:

The problem

Кто-нибудь есть идея, что здесь произошло? И как я могу убедиться, что это не повторится?

Кроме того, я хотел бы знать, если есть способ, которым я могу решить эту проблему, так что это будет просто, как 489, 490, 491, ...

Заранее спасибо!

ответ

2

Это известный «закрытая, как дизайн» ошибка/особенность SQL Server 2012.

См соединить пункт Failover or Restart Results in Reseed of Identity

Функция была реализована Microsoft, чтобы исправить проблему регрессии, вызванную, как они обращаются новый тип данных последовательности. Скачок диапазона идентичности происходит после перезапуска экземпляра для всех таблиц, определенных с идентификационным значением, которые имели одну или несколько строк INSERTED с момента последнего запуска экземпляра i.e любой активной таблицы.

SQL Server предварительно выделит и переместит диапазон IDENTITY на 1000 значений, когда назначенный столбцом значение IDENTITY будет создан как INT и 10000 значений, если определено как BIGINT.

В настоящее время существует 5 обходных решений, описанных в отчете об ошибке, как никогда ни один из них не ужасно приятен. Действительно ли имеет значение, что в последовательности есть пробелы, что произойдет с вашим приложением, если строка, определенная с помощью значения IDENTITY, будет удалена или вставлена, а затем откатна? В обоих случаях будет введен пробел в диапазоне IDENTITY.

+0

Благодарим за быстрый ответ! – Dave

Смежные вопросы