Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Автоинкрементное поле, когда доходит до верхнего предела, начинает отсчёт заново? / 25 сообщений из 32, страница 1 из 2
03.04.2018, 13:38
    #39624776
Игорь_UUS
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Автоинкрементное поле, когда доходит до верхнего предела, начинает отсчёт заново?
Добрый день
...
Рейтинг: 0 / 0
03.04.2018, 13:40
    #39624778
TaPaK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Автоинкрементное поле, когда доходит до верхнего предела, начинает отсчёт заново?
Игорь_UUS,

вам хелп запрещено читать?
...
Рейтинг: 0 / 0
03.04.2018, 13:42
    #39624781
TaPaK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Автоинкрементное поле, когда доходит до верхнего предела, начинает отсчёт заново?
Игорь_UUS,

а вообще, что такое автоинкрементное поле, а то варианты :)
...
Рейтинг: 0 / 0
03.04.2018, 13:44
    #39624784
iap
iap
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Автоинкрементное поле, когда доходит до верхнего предела, начинает отсчёт заново?
Игорь_UUS,

нет
...
Рейтинг: 0 / 0
03.04.2018, 13:45
    #39624787
TaPaK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Автоинкрементное поле, когда доходит до верхнего предела, начинает отсчёт заново?
iapИгорь_UUS,

нета если SEQUENCE
...
Рейтинг: 0 / 0
03.04.2018, 13:55
    #39624797
Дедушка
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Автоинкрементное поле, когда доходит до верхнего предела, начинает отсчёт заново?
TaPaK,

сиквенс, всё таки, вряд ли можно назвать автоинкрементом
это по сути дефолт на поле (вызов функции)
...
Рейтинг: 0 / 0
03.04.2018, 14:02
    #39624811
TaPaK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Автоинкрементное поле, когда доходит до верхнего предела, начинает отсчёт заново?
ДедушкаTaPaK,

сиквенс, всё таки, вряд ли можно назвать автоинкрементом
это по сути дефолт на поле (вызов функции)
ну "Автоинкрементоне поле"... процессорами то тоже всё подряд называют :) ну и identity можносбросить
...
Рейтинг: 0 / 0
03.04.2018, 14:23
    #39624838
Игорь_UUS
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Автоинкрементное поле, когда доходит до верхнего предела, начинает отсчёт заново?
задача следующая... нужно поле 2 байт (от 1 до 64535), каждая новая запись должна иметь следующий номер по порядку. Когда доходит до 64535 идёт сброс на 0.

Сложность в том, что с этой таблицей работает сервис с несколькими потоками, он должен брать запись с гарантированным уникальным ID 2 байт. Если поле identity то это гарантирует на уровне БД, что поле будет иметь уникальный идентификатор. Но вопрос, как правильно его сбросить
...
Рейтинг: 0 / 0
03.04.2018, 14:24
    #39624840
iap
iap
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Автоинкрементное поле, когда доходит до верхнего предела, начинает отсчёт заново?
Игорь_UUSЕсли поле identity то это гарантирует на уровне БД, что поле будет иметь уникальный идентификаторНет
...
Рейтинг: 0 / 0
03.04.2018, 14:24
    #39624841
TaPaK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Автоинкрементное поле, когда доходит до верхнего предела, начинает отсчёт заново?
Игорь_UUS,

SEQUENCE ваш вариант
...
Рейтинг: 0 / 0
03.04.2018, 14:28
    #39624847
iap
iap
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Автоинкрементное поле, когда доходит до верхнего предела, начинает отсчёт заново?
iapИгорь_UUSЕсли поле identity то это гарантирует на уровне БД, что поле будет иметь уникальный идентификаторНетУникальность гарантирует только уникальный индекс.

Можно сделать поле BIGINT IDENTITY (в нашей жизни вряд ли переполнится)
и вычисляемое поле на базе этого, которое будет вычислять IdentityField%64536 .
Вот это поле и будет удовлетворять вашим требованиям.
...
Рейтинг: 0 / 0
03.04.2018, 14:37
    #39624859
TaPaK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Автоинкрементное поле, когда доходит до верхнего предела, начинает отсчёт заново?
Игорь_UUS,

стоит отдельно
авторкаждая новая запись должна иметь следующий номер по порядку.
этого "просто так" не будет
...
Рейтинг: 0 / 0
03.04.2018, 14:38
    #39624863
iap
iap
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Автоинкрементное поле, когда доходит до верхнего предела, начинает отсчёт заново?
iapiapпропущено...
НетУникальность гарантирует только уникальный индекс.

Можно сделать поле BIGINT IDENTITY (в нашей жизни вряд ли переполнится)
и вычисляемое поле на базе этого, которое будет вычислять IdentityField%64536 .
Вот это поле и будет удовлетворять вашим требованиям.Поправка:
Код: sql
1.
2.
IdentityField BIGINT IDENTITY UNIQUE,
Field AS CAST((IdentityField-1)%64535+1 AS SMALLINT)
...
Рейтинг: 0 / 0
03.04.2018, 14:40
    #39624867
iap
iap
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Автоинкрементное поле, когда доходит до верхнего предела, начинает отсчёт заново?
TaPaKИгорь_UUS,

стоит отдельно
авторкаждая новая запись должна иметь следующий номер по порядку.
этого "просто так" не будетПри удалении будут появляться "дырки"
...
Рейтинг: 0 / 0
03.04.2018, 14:43
    #39624877
TaPaK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Автоинкрементное поле, когда доходит до верхнего предела, начинает отсчёт заново?
iapTaPaKИгорь_UUS,

стоит отдельно
пропущено...

этого "просто так" не будетПри удалении будут появляться "дырки"
ну не только
...
Рейтинг: 0 / 0
03.04.2018, 15:19
    #39624938
Игорь_UUS
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Автоинкрементное поле, когда доходит до верхнего предела, начинает отсчёт заново?
iapiapпропущено...
Уникальность гарантирует только уникальный индекс.

Можно сделать поле BIGINT IDENTITY (в нашей жизни вряд ли переполнится)
и вычисляемое поле на базе этого, которое будет вычислять IdentityField%64536 .
Вот это поле и будет удовлетворять вашим требованиям.Поправка:
Код: sql
1.
2.
IdentityField BIGINT IDENTITY UNIQUE,
Field AS CAST((IdentityField-1)%64535+1 AS SMALLINT)



Вроде идея понятно, но не понятно как оно может работать((

с SEQUENCE никогда не работал... подскажите с чего начать, получается нужно создать SEQUENCE, потом его нужно как то применять при создании новой записи в таблице... это как выглядит на tsql (очень буду признателен)
...
Рейтинг: 0 / 0
03.04.2018, 15:22
    #39624945
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Автоинкрементное поле, когда доходит до верхнего предела, начинает отсчёт заново?
...
Рейтинг: 0 / 0
03.04.2018, 15:25
    #39624948
Игорь_UUS
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Автоинкрементное поле, когда доходит до верхнего предела, начинает отсчёт заново?
Konst_One https://habrahabr.ru/post/123446/

SEQUENCE получается появился в версии MSSQL 2012? в 2008 получается его нет?
...
Рейтинг: 0 / 0
03.04.2018, 15:28
    #39624955
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Автоинкрементное поле, когда доходит до верхнего предела, начинает отсчёт заново?
вроде бы с 2008 r2 sp1

и вот это ещё почитайте:
https://msdn.microsoft.com/ru-ru/library/ff878370(v=sql.120).aspx
...
Рейтинг: 0 / 0
03.04.2018, 15:31
    #39624958
iap
iap
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Автоинкрементное поле, когда доходит до верхнего предела, начинает отсчёт заново?
Игорь_UUSKonst_One https://habrahabr.ru/post/123446/

SEQUENCE получается появился в версии MSSQL 2012? в 2008 получается его нет? https://docs.microsoft.com/ru-ru/sql/t-sql/statements/create-sequence-transact-sql
...
Рейтинг: 0 / 0
03.04.2018, 15:31
    #39624959
TaPaK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Автоинкрементное поле, когда доходит до верхнего предела, начинает отсчёт заново?
Konst_Oneвроде бы с 2008 r2 sp1

и вот это ещё почитайте:
https://msdn.microsoft.com/ru-ru/library/ff878370(v=sql.120).aspx
вроде бы в вашей же ссылке
Область применения: SQL Server (начиная с SQL Server 2012 до текущей версии)
...
Рейтинг: 0 / 0
03.04.2018, 15:32
    #39624962
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Автоинкрементное поле, когда доходит до верхнего предела, начинает отсчёт заново?
проверить не могу , но проскакивало вроде бы, что в 2008 r2 уже появилось
...
Рейтинг: 0 / 0
03.04.2018, 15:33
    #39624965
TaPaK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Автоинкрементное поле, когда доходит до верхнего предела, начинает отсчёт заново?
Konst_Oneпроверить не могу , но проскакивало вроде бы, что в 2008 r2 уже появилось
проскочило сразу в 2012
...
Рейтинг: 0 / 0
03.04.2018, 15:34
    #39624966
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Автоинкрементное поле, когда доходит до верхнего предела, начинает отсчёт заново?
хотя нет, только с 2012
...
Рейтинг: 0 / 0
03.04.2018, 15:59
    #39625000
Игорь_UUS
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Автоинкрементное поле, когда доходит до верхнего предела, начинает отсчёт заново?
Господа... есть ещё идея, есть автоинкремент по полю INT, размер 4 байта. В моём случае уникальность будет гарантировать младшие 2 байта.

Вопрос, можно ли средствами TSQL из INT 4 байт вычленить 2 младших байта и получить из этих 2 байт число?
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Автоинкрементное поле, когда доходит до верхнего предела, начинает отсчёт заново? / 25 сообщений из 32, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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