2013-10-10 4 views
0

Я использую SQL AZURE, и у меня есть проблема. У меня есть id_pk за моей таблицей, которая является личностью (1,1). Я начал сохранять данные за этой таблицей, но внезапно, я заметил, что мой pk не был 1,2,3 ... больше, он прыгнул с 38 до 1038, например. После этого продолжали вставлять данные, и это было нормально, но внезапно, опять же, он сделал еще один прыжок с 1043 до 2039.SQL AZURE IDENTITY (1,1)

Почему это происходит? и как это исправить?

Это произошло не только за одним столом, но и в 3 из них (по крайней мере, я заметил в 3 таблицах).

+1

Любой шанс, что ваш пользователь вставил и удалил 1000 строк на вас? – Twelfth

+0

Нет, нет такого шанса. Мы просто тестируем до сих пор, и только я и еще 2 друга могут добавлять и удалять пользователей. –

+0

Не уверен. Но я должен спросить, достаточно ли это имеет значение для исправления? Столбцы идентификаторов предназначены для того, чтобы база данных связывала записи, и это имеет мало значения, если число равно 1 или 102928301. – Twelfth

ответ

0

Короткий ответ - я не верю, что здесь что-то не так. Мы можем догадаться о нескольких объяснениях (вставка и удаление - это моя мысль, но не знаю), но это ничего не изменит. Да, поле ID увеличивается очень быстро, но поле идентификатора находится за номером сцены, о котором заботится база данных, и не более того. В этом свете я не нахожу никакого вреда, фол, продолжайте.

Если вы хотите решить эту проблему и «сбросить» поле идентификатора ... создайте идентичную таблицу с полем идентификатора, установленным в 1,1 снова. Вставьте все строки из старой таблицы и поместите их в новую таблицу ... после этого идентификаторы должны быть последовательными. Будьте предупреждены, что любые другие таблицы, у которых есть ключ foriegn до этого поля идентификатора, скорее всего, потеряют его отношение. Я бы попробовал это только как последний (последний) курорт.