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

Откуда:
Сообщений: 5
Доброго времени суток. Прошу не пинать, ибо очень начинающий. Имеется таблица например 10 полей и 100 тыс записей. В этой таблице есть ключевое поле "Number", значения этого поля увеличиваются с каждой новой записью на 1, в нашем случае,например, со 150000 и заканчиваются 250000. Если удалить одну из записей где-то в серединке от 150001 до 249999,например 156002, то как бы получается нарушен порядок, т.е. 156001 , а следующая запись идет с номером 156003. Каким образом можно восстановить эту последовательность. т.е. чтобы запись 156003 стала записью 156002 и т.д. при этом нужно указать с какой записи начинать перезапись значений и на какой записи закончить. Спасибо большое.
19 фев 17, 13:29    [20225876]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите как изменить все записи в одном поле  [new]
invm
Member

Откуда: Москва
Сообщений: 9632
nesharyu
Каким образом можно восстановить эту последовательность
Зачем? Из чисто эстетических соображений?
19 фев 17, 13:34    [20225882]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите как изменить все записи в одном поле  [new]
nesharyu
Member

Откуда:
Сообщений: 5
Да, это возможно сделать?
19 фев 17, 13:43    [20225894]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите как изменить все записи в одном поле  [new]
invm
Member

Откуда: Москва
Сообщений: 9632
Возможно, но не нужно. Это одна из типичных ошибок новичка.

Никогда, ни при каких обстоятельствах, не изменяйте значения ключевых полей. Их функция - идентификация строк в таблице, а не обеспечение красивой неразрывной последовательности значений при просмотре таблицы человеком.

Лучше поймете последствия таких обновлений, когда ваша таблица, например, будет родительской для еще нескольких.
19 фев 17, 13:56    [20225910]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите как изменить все записи в одном поле  [new]
nesharyu
Member

Откуда:
Сообщений: 5
Я понимаю о чем вы говорите, с другой таблицей действительно есть связь по этому полю, но ведь и в той таблице тоже можно сделать это.
19 фев 17, 14:07    [20225931]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите как изменить все записи в одном поле  [new]
Критик
Member

Откуда: Москва / Калуга
Сообщений: 34710
Блог
nesharyu
Я понимаю о чем вы говорите, с другой таблицей действительно есть связь по этому полю, но ведь и в той таблице тоже можно сделать это.


таких других таблиц - десяток другой, просто вы не все нашли,
а записи будут удаляться и далее...
19 фев 17, 14:16    [20225945]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите как изменить все записи в одном поле  [new]
SQL2008
Member

Откуда: Москва
Сообщений: 4391
nesharyu
Если удалить одну из записей где-то в серединке от 150001 до 249999,например 156002, то как бы получается нарушен порядок, т.е. 156001 , а следующая запись идет с номером 156003. Каким образом можно восстановить эту последовательность. т.е. чтобы запись 156003 стала записью 156002 и т.д. при этом нужно указать с какой записи начинать перезапись значений и на какой записи закончить.

Для какой цели?
Вы перфекционист?
19 фев 17, 14:43    [20225986]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите как изменить все записи в одном поле  [new]
nesharyu
Member

Откуда:
Сообщений: 5
Напишите пожалуйста, кто действительно может помочь, а не отговаривать.(мы в конце концов не на форуме философов)
Все будет делаться на тестовой машине и т.д.
19 фев 17, 14:47    [20225994]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите как изменить все записи в одном поле  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37138
nesharyu
Напишите пожалуйста, кто действительно может помочь, а не отговаривать.(мы в конце концов не на форуме философов)
Все будет делаться на тестовой машине и т.д.
Вам действительно хотят помочь. Поэтому и советуют не заниматься фигней.
19 фев 17, 14:53    [20225999]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите как изменить все записи в одном поле  [new]
invm
Member

Откуда: Москва
Сообщений: 9632
nesharyu,

Решили таки походить по граблям? Дело ваше.
Сделать, что вы хотите, элементарно:
update Таблица set Number -= 1 where Number >= 156003

Теперь можете развлекаться с ключами и дочерними таблицами. Удачи.
19 фев 17, 15:54    [20226068]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите как изменить все записи в одном поле  [new]
Mike_za
Member

Откуда: Москва
Сообщений: 1176
Пронумеруйте row number () по порядку и проапдейтите (либо с cte, либо с временной таблицей)
19 фев 17, 23:06    [20227001]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите как изменить все записи в одном поле  [new]
nesharyu
Member

Откуда:
Сообщений: 5
Спасибо, ребята, когда я встряну с дочерними таблицами и с ключами, я обязательно всех вспомню. ))) Шутка, спасибо за помощь.
20 фев 17, 19:17    [20230463]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите как изменить все записи в одном поле  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37138
nesharyu
Спасибо, ребята, когда я встряну с дочерними таблицами и с ключами, я обязательно всех вспомню. ))) Шутка, спасибо за помощь.
Ну вот, рождение говнокодера... Главное, не встряньте, когда ваш код проревьювят понимающие люди.
20 фев 17, 19:25    [20230479]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите как изменить все записи в одном поле  [new]
iljy
Member

Откуда:
Сообщений: 8711
nesharyu
Спасибо, ребята, когда я встряну с дочерними таблицами и с ключами, я обязательно всех вспомню. ))) Шутка, спасибо за помощь.


Бег по граблям: Начало. Эпизод 3798604
20 фев 17, 20:55    [20230690]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите как изменить все записи в одном поле  [new]
Mind
Member

Откуда: Лучший город на Земле
Сообщений: 2322
Может человек случайно запись удалил, а теперь следы заметает, чтобы никто не нашел.
21 фев 17, 01:04    [20231294]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить