Надеюсь, вопрос не слишком общий.
У меня есть таблица Person
, в которой есть столбец PK Identity Id
.
Через C # я вставляю новые записи для Person
и для 3 добавленных идентификаторов установлено значение 1,2,3.
Также с помощью C # я выполняю все удаления лиц с Id = 1,2,3, чтобы вТаблица больше.
После этого я запускаю несколько сценариев изменений (я не могу опубликовать их, так как они слишком длинные) также на Персоне таблицы.
Я не выполняю никаких СБРОСОВ.
Теперь самое интересное:
Если я позвоню SELECT IDENT_CURRENT('Person')
, вместо 3 появится 3 *.
Если я снова вставлю Person, я получу Person с идентификатором3 добавлено вместо Id 4.
Есть идеи, почему и как это может произойти?
РЕДАКТИРОВАТЬ
Я думаю, что нашел объяснение моего вопроса:
Во время выполнения изменений БД через SQL Server Management Studio конструктор создает временную таблицу Tmp_Person и перемещает данные из Person в нее.После этого он выполняет переименование Tmp_Person в Person.Поскольку это новая таблица, индекс начинается заново с самого начала.