powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Не верно увеличиваются ID
16 сообщений из 16, страница 1 из 1
Не верно увеличиваются ID
    #39642521
Барсег
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, уважаемые знатоки.
Позвольте задать вопрос: MS SQL Managment studio 2012. Создаю таблицу, в таблице есть инкрементное поле ID.
Начинаю работу с таблицей, тестирую: добавляю, удаляю данные. И вот, что обнаружил, ID сначала идут 1,2,3,4,5...50,51,1052,1053,1054...
Откуда берется такой шаг? Я работаю на локальной машине, больше никто, кроме меня не имеет доступа к этой базе, и добавлял в таблицу не более сотни записей.
Если кто сталкивался с этим, подскажите пожалуйста.
...
Рейтинг: 0 / 0
Не верно увеличиваются ID
    #39642528
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Автоинкремент гарантирует только то, что очередное сгенерированное значение будет больше предыдущего (если не корректировать настройки, конечно). А вот непрерывности - не гарантирует. Нужна непрерывность - используйте дополнительное поле-счётчик с "ручным" пересчётом.
...
Рейтинг: 0 / 0
Не верно увеличиваются ID
    #39642530
Барсег
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina, благодарю вас за ответ. А можете не большой пример привести? Никогда не пользовался счетчиком с "ручным" пересчетом.
...
Рейтинг: 0 / 0
Не верно увеличиваются ID
    #39642545
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Не верно увеличиваются ID
    #39642546
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CREATE SEQUENCE
https://docs.microsoft.com/en-us/sql/t-sql/statements/create-sequence-transact-sql
Доступно с версии 2012.
...
Рейтинг: 0 / 0
Не верно увеличиваются ID
    #39642550
Барсег
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Благодарю всех, кто ответил :)
...
Рейтинг: 0 / 0
Не верно увеличиваются ID
    #39642603
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akina,

seaquence тоже не гарантирует равномерное возрастание
...
Рейтинг: 0 / 0
Не верно увеличиваются ID
    #39642616
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TaPaKseaquence тоже не гарантирует равномерное возрастаниеДа... но если отключить кэширование, то разве что в случае отката транзакции, в которой получаем значение (ну или вообще втупую получили и не стали использовать)...
...
Рейтинг: 0 / 0
Не верно увеличиваются ID
    #39642623
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AkinaTaPaKseaquence тоже не гарантирует равномерное возрастаниеДа... но если отключить кэширование, то разве что в случае отката транзакции, в которой получаем значение (ну или вообще втупую получили и не стали использовать)...
будем называть "ну почти-почти гаранитирует" :)
...
Рейтинг: 0 / 0
Не верно увеличиваются ID
    #39642651
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TaPaK , я вообще не могу представить, как ГАРАНТИРОВАТЬ. Всегда, при любой методике, есть последовательность событий, которая приведёт к разрыву последовательности и пропуску значений.
...
Рейтинг: 0 / 0
Не верно увеличиваются ID
    #39642654
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akina TaPaK , я вообще не могу представить, как ГАРАНТИРОВАТЬ. Всегда, при любой методике, есть последовательность событий, которая приведёт к разрыву последовательности и пропуску значений.Гарантирует пересчет внутри модифицирующей транзакции.
...
Рейтинг: 0 / 0
Не верно увеличиваются ID
    #39642656
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гавриленко Сергей АлексеевичГарантирует пересчет внутри модифицирующей транзакции.Если она, такая модифицирующая транзакция, возможна. А она не всегда возможна. Например, вставляемые данные, включая сгенерированный идентификатор, копируются в таблицу лога, которая UPDATE/DELETE DENY - что тут модифицируешь?
...
Рейтинг: 0 / 0
Не верно увеличиваются ID
    #39642660
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AkinaГавриленко Сергей АлексеевичГарантирует пересчет внутри модифицирующей транзакции.Если она, такая модифицирующая транзакция, возможна. А она не всегда возможна. Например, вставляемые данные, включая сгенерированный идентификатор, копируются в таблицу лога, которая UPDATE/DELETE DENY - что тут модифицируешь?Модифицировтаь данные до вставки с предварительной блокировкой таблицы.
...
Рейтинг: 0 / 0
Не верно увеличиваются ID
    #39642667
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
может автору реально и не нужен этот непререрывный счётчик, может у него всего лишь отчёт какой-нибудь и достаточно сделать правильный запрос с нумерацией?
...
Рейтинг: 0 / 0
Не верно увеличиваются ID
    #39642669
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гавриленко Сергей Алексеевич , ааа, в этом смысле... ну при монопольном доступе - оно конечно да. SELECT 1+MAX(id)... если вставлять по одной записи...
...
Рейтинг: 0 / 0
Не верно увеличиваются ID
    #39643078
Фотография Maxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_Oneможет автору реально и не нужен этот непререрывный счётчик, может у него всего лишь отчёт какой-нибудь и достаточно сделать правильный запрос с нумерацией?
+1
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Не верно увеличиваются ID
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]