![]() |
Модераторы: Akina |
![]() ![]() ![]() |
|
Golden Hands |
|
|||
![]() Золотой ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2023 Регистрация: 23.1.2005 Где: Екатеринбург Репутация: 1 Всего: 83 |
Есть таблица, в ней поле id типа smallint, primary key, для этого поля установлено свойство identity с начальным значением равным 1, инкремент равен 1. То есть при вставке новых записей в таблицу значения этого поля должны увеличиваться на 1. Так и происходит.
Несколько раз замечал такую штуку: при обновлении каких-то записей, и последующей вставке новых значений в таблицу, значение поля id было не на 1, а на 2 или 3 больше предыдущего. Может быть кто-нибудь сталкивался с этим? Отчего так происходит? -------------------- Мы обречены... но только на победу! Настанет день, и мы построим новый дом. Внесем в него тепло, что сохранить сумели, И воскресим все то, что в нас когда-то умерло... © Тень Света |
|||
|
||||
Петрович |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1000 Регистрация: 2.12.2003 Где: Москва Репутация: 1 Всего: 55 |
Вероятно это связано с откатом транзакции вставившей запись в эту таблицу.
-------------------- Все знать невозможно, но хочется |
|||
|
||||
AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: нет Всего: 118 |
В принципе Петрович уже все сказал. Я бы еще добавил, что не надо обращать на это внимания. И строить приложение так, чтобы не думать о таких штуках.
|
|||
|
||||
Golden Hands |
|
|||
![]() Золотой ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2023 Регистрация: 23.1.2005 Где: Екатеринбург Репутация: 1 Всего: 83 |
AntonSaburov, не обращать внимания на Identity? Т.е. не юзать его, хочешь сказать?
-------------------- Мы обречены... но только на победу! Настанет день, и мы построим новый дом. Внесем в него тепло, что сохранить сумели, И воскресим все то, что в нас когда-то умерло... © Тень Света |
|||
|
||||
Петрович |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1000 Регистрация: 2.12.2003 Где: Москва Репутация: 1 Всего: 55 |
Нет. Имеется ввиду не обращать внимание на "дыры" в нумерации. -------------------- Все знать невозможно, но хочется |
|||
|
||||
AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: нет Всего: 118 |
Именно это и имел в виду.
|
|||
|
||||
Golden Hands |
|
|||
![]() Золотой ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2023 Регистрация: 23.1.2005 Где: Екатеринбург Репутация: 1 Всего: 83 |
Ну это понятно, кроме ситуаций, когда последовательность важна.
-------------------- Мы обречены... но только на победу! Настанет день, и мы построим новый дом. Внесем в него тепло, что сохранить сумели, И воскресим все то, что в нас когда-то умерло... © Тень Света |
|||
|
||||
kobra |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 730 Регистрация: 15.6.2005 Где: Грузия, Тбилиси Репутация: 5 Всего: 9 |
может пригадится для размышлении правда, мне кажется можно схитрить. создать таблицу (можно даже с автоинкрементным ID) и загнать туда NULL-еи столько, сколько может появится записеи в таблице. естественно поле ID будет заполнено подряд. а далше когда нужно будет чтото добавить, просто вставиш ету запис вместо первого NULL. ну и изврашение. прошу не пинать. |
|||
|
||||
Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 5 Всего: 207 |
Тогда делается не автоинкремент, а обычное поле, а в Insert запрос ставится что-то типа:
Но! При удалении записи из средины прийдётся перенумеровывть весь столбец! А это на больших таблицах может занять изрядно времени, ещё и с учётом того, что при такой перенумерации необходимо намертво блокировать таблицу от других транзакций и по записи, и скорее всего и по чтению. Вообще-то нумерация строк и её привязка в 99% случаев свидетельствует о том что человек пришёл в мир баз данных недавно, и привык манипулировать массивами, и теперь старается перенести известную ему идеологию на базы данных... На самом деле сквозная нумерация нужна чрезвычайно редко, за 7 лет работы я ещё не встречал ее необходимости -------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
Golden Hands |
|
|||
![]() Золотой ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2023 Регистрация: 23.1.2005 Где: Екатеринбург Репутация: 1 Всего: 83 |
Vit, как раз не недавно. А спрашивал затем, чтобы не осталось неразрешенных вопросов. Про массивы и не вспоминал.
![]() Это сообщение отредактировал(а) Golden Hands - 16.7.2005, 01:52 -------------------- Мы обречены... но только на победу! Настанет день, и мы построим новый дом. Внесем в него тепло, что сохранить сумели, И воскресим все то, что в нас когда-то умерло... © Тень Света |
|||
|
||||
Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 5 Всего: 207 |
![]() -------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
![]() ![]() ![]() |
Правила форума "MS SQL" | |
|
Запрещается! Публиковать ссылки и обсуждать взлом чего бы то ни было.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Zloxa, Akina. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | MS SQL Server | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |