Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Проблема с IDENTITY столбцом - как назначить предыдущее значение.  [new]
Георгий Давидович
Member

Откуда:
Сообщений: 349
Есть таблица и в ней столбец ID identity. Случайно я переназначил IdentitySeed на этом столбце и придал ему значение, допустим 100(просто правой кнопкой открый окно Modify и там изменил).

Теперь если я добавляю пять строк то они добавляются как (100,101,102,103,104). Далее удаляю все строки и заново добавляю. А строки опять с теми же (100,101,102,103,104) добавляются, а нужно чтоб продолжились (105,106,107,108,109).


Выручайте пожалуйста :(
2 июл 09, 19:26    [7370567]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с IDENTITY столбцом - как назначить предыдущее значение.  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36818
Не удаляйте транкейтом, и identity не будет сбрасываться.
2 июл 09, 19:30    [7370576]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с IDENTITY столбцом - как назначить предыдущее значение.  [new]
Георгий Давидович
Member

Откуда:
Сообщений: 349
так и не удаляю транкейтом! ничего не понимаю. дело в том что я когда правой кнопкой открываю окно Modify там у меня всегда стоит IdentitySeed 100. а если я изменяю на
IdentityIncrement = 1
IdentitySeed = 1

то начинает с 1 нумеровать а надо со 105 уже.
2 июл 09, 19:42    [7370607]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с IDENTITY столбцом - как назначить предыдущее значение.  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74927
автор
окно Modify там у меня всегда стоит IdentitySeed 100. а если я изменяю на
IdentityIncrement = 1
IdentitySeed = 1


Окно Modify - это где? Раз меняете IdentitySeed, то почему ждете, что он останется старым (105)? таблица то наверняка пересоздается? Посмотрите скрипт, сгенеренный в ответ на Ваше мышкование.
2 июл 09, 19:48    [7370618]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с IDENTITY столбцом - как назначить предыдущее значение.  [new]
Георгий Давидович
Member

Откуда:
Сообщений: 349
Объясню поподробней.

Нужно сделать так. Создать новую таблицу с идентити, у которой записи начнутся со 100.
Как это сделать?
2 июл 09, 19:53    [7370629]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с IDENTITY столбцом - как назначить предыдущее значение.  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74927
Ну так, почему бы не указать IdentitySeed = 100, а не IdentitySeed = 1. Вы понимаете смысл этих двух параметров?!
2 июл 09, 19:59    [7370638]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с IDENTITY столбцом - как назначить предыдущее значение.  [new]
Георгий Давидович
Member

Откуда:
Сообщений: 349
понимаю конечно.

так в том и вопрос. указал 100. проинсертил 2 строки (100,101).
удалил 2 строки. проинсертил опять, но опять с номерами (100, 101).

вот и не пойму что за херня.
2 июл 09, 20:05    [7370647]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с IDENTITY столбцом - как назначить предыдущее значение.  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74927
Георгий Давидович
понимаю конечно.

так в том и вопрос. указал 100. проинсертил 2 строки (100,101).
удалил 2 строки. проинсертил опять, но опять с номерами (100, 101).

вот и не пойму что за херня.


Слова, слова... Репро в виде инструкций T-SQL приведите, пожалуйста, подтверждающие Ваши слова.
2 июл 09, 20:13    [7370660]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с IDENTITY столбцом - как назначить предыдущее значение.  [new]
Георгий Давидович
Member

Откуда:
Сообщений: 349
Аа разобрался :)

У меня удаление значений из таблицы идет через процедуру, а в ней я вчера изменил Delete на Truncate - вот и напоролся. У меня это все из базы Аксесса происходит - вот и попутался.

Извиняюсь за ложную тревогу.
Все спасибо за помощь!
2 июл 09, 20:25    [7370671]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с IDENTITY столбцом - как назначить предыдущее значение.  [new]
DeColo®es
Member

Откуда: Москва
Сообщений: 5499
Блог
Не стоит пытаться делать "красивыми" значения IDENTITY столбцов.
Этот механизм генерации значений предназначен просто для выдачи уникальных монотонно возрастающих чисел и ничего более.
Любые попытки заставить генерировать его конкретные значения будут до последнего "отторгаться" системой. ;)
3 июл 09, 10:00    [7371780]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с IDENTITY столбцом - как назначить предыдущее значение.  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74927
DeColo®es
Этот механизм генерации значений предназначен просто для выдачи уникальных монотонно возрастающих чисел и ничего более.


Выделенное лишнее, IMHO. ;)
3 июл 09, 10:02    [7371793]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить