Страница: 1 |
Страница: 1 |
Вопрос: VB 6.0 Проблема с добавлением новой записи
Добавлено: 14.04.10 09:37
Автор вопроса: Максим
Помогите, пожалуйста. У меня такая проблема.
У меня в sql-сервере 2000 есть таблица со столбцом NUM с параметрами:
Allow Nulls - No
Data Type - int
Identity Specification - Yes
Identity Increment - 1
Identity Seed - 1
Indexable - Yes
При добавлении новой записи столбец NUM должен заполняться автоматически. Я добавил 10 записей, столбец NUM автоматически заполнился с 1 по 10. Но, как только я их все удалил, и начал добавлять записи, значение NUM стало 11 и выше. А мне надо чтобы значение было именно с той записи, которая идет следущая после удаления (в моем примере, если удалить все записи, значение NUM должно начинаться с 1, если удалить до 5 записи - то значение следующей должно быть 6 и т.д.) В чем проблема, как решить эту задачу?
Ответы
Всего ответов: 2
Номер ответа: 1
Автор ответа:
Администратор
ICQ: 278109632
Вопросов: 42
Ответов: 3949
Web-сайт:
Профиль | | #1
Добавлено: 14.04.10 10:34
При автоинкременте так быть и должно. Он же не вкуривает, из середины ты удалил ил с конца. Заводи еще одно поле и пересчитывай номер каждый раз.
Номер ответа: 2
Автор ответа:
Artyom
Разработчик
Вопросов: 130
Ответов: 6602
Профиль | | #2
Добавлено: 17.04.10 05:02
Средствами SQL Server задача не решается.
Можно отдельно хранить список удаленных ID, при удалении добавляешь этот ID в список. При создании новой записи - берешь новое значение из списка, если там пусто, то берешь самое большое в таблице, прибавляешь 1. Можно сделать на триггерах, в транзакциях