Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
24.11.2020, 11:23
|
|||
---|---|---|---|
INSERT в неинкрементное поле |
|||
#18+
Скажите пожалуйста, как можно сделать INSERT в неинкрементное поле, чтобы при вставке каждой строке значение увеличивалось на +1 от предыдущей строки? Хотелось бы обойтись без курсора. В приложенной картинке это поле keys. id - атоинкрементное. Заранее благодарен. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
24.11.2020, 11:32
|
|||
---|---|---|---|
INSERT в неинкрементное поле |
|||
#18+
Кесарь ... |
|||
:
Нравится:
Не нравится:
|
|||
|
24.11.2020, 12:05
|
|||
---|---|---|---|
INSERT в неинкрементное поле |
|||
#18+
L_argo Кесарь В совсем старых версиях sequence делается руками на коленке за пару минут. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
24.11.2020, 16:08
|
|||
---|---|---|---|
|
|||
INSERT в неинкрементное поле |
|||
#18+
Сиквентс неиспользованные числа не возвращает в пул при откате транзакции, так что не на коленке за пару минут. Потребуется CLR или иной сервис. Чтобы нумерация была без пропусков, потребуется создать узкое горло на уровне процессов, sp_getapplock, чтобы в один момент времени ставка происходило только из одного процесса. В этом случае при откате таблица-нумератор также откатит счетчик. И следующий процесс начнет нумерацию в последнего сохранённого номера. Вопрос в том - допускают ли задачи такое "горло". ... |
|||
:
Нравится:
Не нравится:
|
|||
|
24.11.2020, 17:29
|
|||
---|---|---|---|
INSERT в неинкрементное поле |
|||
#18+
Владислав Колосов Чтобы нумерация была без пропусков, потребуется создать узкое горло на уровне процессов, sp_getapplock IDENTITY тоже не дает гарантию отстутствия пропусков. По-моему можно просто делать все на уровне repeatable read и выбирать max() из таблицы. Но дедлок при этом будет возникать запросто. А можно на поле keys поставить unique и в случае ошибки вставки делать повторные попытки. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=46&tablet=1&tid=1685380]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
60ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 155ms |
0 / 0 |