Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 int vs Identity  [new]
waszkiewicz
Member

Откуда:
Сообщений: 1090
Как известно значение типа int - занимает 4 байта. Вопрос - что делать, когда значение в поле с Identity приближается к максимальному значению?
22 апр 15, 12:58    [17548270]     Ответить | Цитировать Сообщить модератору
 Re: int vs Identity  [new]
Konst_One
Member

Откуда:
Сообщений: 11623
https://msdn.microsoft.com/ru-ru/library/ms176057.aspx
reseed
22 апр 15, 12:59    [17548285]     Ответить | Цитировать Сообщить модератору
 Re: int vs Identity  [new]
Glory
Member

Откуда:
Сообщений: 104751
waszkiewicz
Вопрос - что делать, когда значение в поле с Identity приближается к максимальному значению?

Узнать, что кроме int, есть еще bigint и numeric
22 апр 15, 13:00    [17548287]     Ответить | Цитировать Сообщить модератору
 Re: int vs Identity  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8828
waszkiewicz, читайте справку, когда прочтете - читайте еще раз. А лучше и третий раз добавить. После трех раз у задающих подобные вопросы обычно наступает просветление.
22 апр 15, 13:03    [17548323]     Ответить | Цитировать Сообщить модератору
 Re: int vs Identity  [new]
iap
Member

Откуда: Москва
Сообщений: 47145
Glory
waszkiewicz
Вопрос - что делать, когда значение в поле с Identity приближается к максимальному значению?

Узнать, что кроме int, есть еще bigint и numeric
и что int - знаковый тип.
Значит, можно продолжать с -2147483648, когда достигнет 2147483647
22 апр 15, 13:05    [17548344]     Ответить | Цитировать Сообщить модератору
 Re: int vs Identity  [new]
waszkiewicz
Member

Откуда:
Сообщений: 1090
Glory
waszkiewicz
Вопрос - что делать, когда значение в поле с Identity приближается к максимальному значению?

Узнать, что кроме int, есть еще bigint и numeric

Это я знаю. Систему планировал не я, по факту там int

Правильно ли я понимаю, что
DBCC CHECKIDENT ( [table_name], RESEED, 1 )

начнет нумерацию с 1 до тех пор, пока не натолкнется на ограничение PK?
22 апр 15, 13:10    [17548384]     Ответить | Цитировать Сообщить модератору
 Re: int vs Identity  [new]
Glory
Member

Откуда:
Сообщений: 104751
waszkiewicz
Это я знаю. Систему планировал не я, по факту там int

О чем тогда ваш вопрос ?
Что вам делать с числом записей, превыщающем лимит типа int ?
22 апр 15, 13:12    [17548396]     Ответить | Цитировать Сообщить модератору
 Re: int vs Identity  [new]
iap
Member

Откуда: Москва
Сообщений: 47145
waszkiewicz
Правильно ли я понимаю, что
DBCC CHECKIDENT ( [table_name], RESEED, 1 )

начнет нумерацию с 1 до тех пор, пока не натолкнется на ограничение PK?
Правильно.
Но натолкнётся ещё нескоро, если
DBCC CHECKIDENT ([table_name], RESEED, -2147483648)
22 апр 15, 13:13    [17548408]     Ответить | Цитировать Сообщить модератору
 Re: int vs Identity  [new]
waszkiewicz
Member

Откуда:
Сообщений: 1090
Glory
waszkiewicz
Это я знаю. Систему планировал не я, по факту там int

О чем тогда ваш вопрос ?
Что вам делать с числом записей, превыщающем лимит типа int ?

нет, хотелось рекомендаций что делать, когда такая ситуация наступает.
22 апр 15, 13:13    [17548418]     Ответить | Цитировать Сообщить модератору
 Re: int vs Identity  [new]
Glory
Member

Откуда:
Сообщений: 104751
waszkiewicz
нет, хотелось рекомендаций что делать, когда такая ситуация наступает.

если у вас больше 2(4) миллиардов записей, то придется обращаться к тому, кто " Систему планировал не я"
Чтобы он спланировал ее еще раз
22 апр 15, 13:15    [17548439]     Ответить | Цитировать Сообщить модератору
 Re: int vs Identity  [new]
iap
Member

Откуда: Москва
Сообщений: 47145
Основная трудность для замены типа - это FK в других таблицах.
А так - поменять на BIGINT и не париться.
22 апр 15, 13:19    [17548472]     Ответить | Цитировать Сообщить модератору
 Re: int vs Identity  [new]
waszkiewicz
Member

Откуда:
Сообщений: 1090
iap
Основная трудность для замены типа - это FK в других таблицах.
А так - поменять на BIGINT и не париться.

Мну как-то сервер не разрешает на таблице со значениями изменить тип. Однако можно создать новую и скопировать в туда, но на вопрос в
Исторические данные.
я не получил ответа в плане переименовать - подменить значение (клиент-то не знает, что "гипс снимают")
Отсюда и вопрос возник - однако "один вопрос - один топик"
22 апр 15, 13:26    [17548531]     Ответить | Цитировать Сообщить модератору
 Re: int vs Identity  [new]
iap
Member

Откуда: Москва
Сообщений: 47145
waszkiewicz
iap
Основная трудность для замены типа - это FK в других таблицах.
А так - поменять на BIGINT и не париться.

Мну как-то сервер не разрешает на таблице со значениями изменить тип.
Перед тем как написать я же проверил сначала.
ALTER TABLE T ALTER COLUMN ID BIGINT NOT NULL;
А вот FK из других таблиц будут мешать.
И тип там тоже менять придётся.
22 апр 15, 13:34    [17548589]     Ответить | Цитировать Сообщить модератору
 Re: int vs Identity  [new]
waszkiewicz
Member

Откуда:
Сообщений: 1090
iap
waszkiewicz
пропущено...

Мну как-то сервер не разрешает на таблице со значениями изменить тип.
Перед тем как написать я же проверил сначала.
ALTER TABLE T ALTER COLUMN ID BIGINT NOT NULL;
А вот FK из других таблиц будут мешать.
И тип там тоже менять придётся.


Так это старая байка в действии - из designer нельзя, а скриптом можно? ;)
22 апр 15, 13:37    [17548607]     Ответить | Цитировать Сообщить модератору
 Re: int vs Identity  [new]
iap
Member

Откуда: Москва
Сообщений: 47145
waszkiewicz
iap
пропущено...
Перед тем как написать я же проверил сначала.
ALTER TABLE T ALTER COLUMN ID BIGINT NOT NULL;

А вот FK из других таблиц будут мешать.
И тип там тоже менять придётся.


Так это старая байка в действии - из designer нельзя, а скриптом можно? ;)
Мы же не в детском саду?
Скрипты пора писать, а про кубики и куличики забыть!
22 апр 15, 13:39    [17548617]     Ответить | Цитировать Сообщить модератору
 Re: int vs Identity  [new]
msLex
Member

Откуда:
Сообщений: 9294
iap
waszkiewicz
пропущено...

Мну как-то сервер не разрешает на таблице со значениями изменить тип.
Перед тем как написать я же проверил сначала.
ALTER TABLE T ALTER COLUMN ID BIGINT NOT NULL;
А вот FK из других таблиц будут мешать.
И тип там тоже менять придётся.

не только FK, но и PK (в отличии от обычных unique index-ов), за это я из и недолюбливаю
22 апр 15, 13:40    [17548628]     Ответить | Цитировать Сообщить модератору
 Re: int vs Identity  [new]
Glory
Member

Откуда:
Сообщений: 104751
waszkiewicz
Так это старая байка в действии - из designer нельзя, а скриптом можно? ;)

А вы прочитали сообщение "из дизайнера" ?
22 апр 15, 13:42    [17548641]     Ответить | Цитировать Сообщить модератору
 Re: int vs Identity  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31984
waszkiewicz
Мну как-то сервер не разрешает на таблице со значениями изменить тип
Пишет "не разрешаю"?

Если вам в поле нужно записать значения, которые не влезают в используемый тип данных, то нужно перепроектировать систему, дав заодно нагоняй предыдущему проектровщику.

Какие тут варианты, собственно?

Далее, пишите, какими командами пытаетесь изменить тип, с какими трудностями сталкиваетесь, тут попытаются помочь.
Только конкретно, копируйте сюда команды и тексты ошибок, а не общими словами.
waszkiewicz
Правильно ли я понимаю, что
DBCC CHECKIDENT ( [table_name], RESEED, 1 )

начнет нумерацию с 1 до тех пор, пока не натолкнется на ограничение PK?
Не "ограничение PK", а ограничение типа данных.

Да, можно и автонумерацию перестартовать, только этот вариант чреват постоянным повторением этой ситуации. ИМХО лучше поменять тип.
22 апр 15, 13:44    [17548677]     Ответить | Цитировать Сообщить модератору
 Re: int vs Identity  [new]
msLex
Member

Откуда:
Сообщений: 9294
alexeyvg
Не "ограничение PK", а ограничение типа данных.

попытка нарушение ограничение PK (уникальность) тоже будет пресечена сервером.
22 апр 15, 13:47    [17548701]     Ответить | Цитировать Сообщить модератору
 Re: int vs Identity  [new]
waszkiewicz
Member

Откуда:
Сообщений: 1090
Glory
waszkiewicz
Так это старая байка в действии - из designer нельзя, а скриптом можно? ;)

А вы прочитали сообщение "из дизайнера" ?

Чукча не читатель, чукча писатель ;)
Да читал конечно. Снял галку.
22 апр 15, 13:51    [17548740]     Ответить | Цитировать Сообщить модератору
 Re: int vs Identity  [new]
waszkiewicz
Member

Откуда:
Сообщений: 1090
msLex
alexeyvg
Не "ограничение PK", а ограничение типа данных.

попытка нарушение ограничение PK (уникальность) тоже будет пресечена сервером.

это и имелось ввиду.

А так-то мечталось записи древние (до какого-то периода) удалить и начать нумерацию Identity снова. Спросил, видно, неверно
Тему можно закрывать.
22 апр 15, 13:54    [17548752]     Ответить | Цитировать Сообщить модератору
 Re: int vs Identity  [new]
a_voronin
Member

Откуда: Москва
Сообщений: 4902
waszkiewicz
msLex
пропущено...

попытка нарушение ограничение PK (уникальность) тоже будет пресечена сервером.

это и имелось ввиду.

А так-то мечталось записи древние (до какого-то периода) удалить и начать нумерацию Identity снова. Спросил, видно, неверно
Тему можно закрывать.


Мигрируйтесь на sql2012/2014 и замените IDENTITY на SEQUENCE, а тип поля на BIGINT. Однако если этим пользуются клиентские программы может потребуется поправить и их.
22 апр 15, 16:05    [17549681]     Ответить | Цитировать Сообщить модератору
 Re: int vs Identity  [new]
iap
Member

Откуда: Москва
Сообщений: 47145
a_voronin
замените IDENTITY на SEQUENCE
Зачем? Делать больше нечего?
22 апр 15, 16:15    [17549738]     Ответить | Цитировать Сообщить модератору
 Re: int vs Identity  [new]
a_voronin
Member

Откуда: Москва
Сообщений: 4902
iap
a_voronin
замените IDENTITY на SEQUENCE
Зачем? Делать больше нечего?


А IDENITY у нас BIGINT поддерживает?
22 апр 15, 16:28    [17549822]     Ответить | Цитировать Сообщить модератору
 Re: int vs Identity  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10233
Блог
a_voronin
iap
пропущено...
Зачем? Делать больше нечего?


А IDENITY у нас BIGINT поддерживает?

а куда он денется
22 апр 15, 16:33    [17549851]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить