OriginalGriff
Это не то, что вы хотите сделать, почти наверняка.
Скорее всего, столбец БД задан как поле идентификации-это означает, что база данных поддерживает его и гарантирует, что значения не дублируются. Эти цифры никогда не должны быть изменены, но оставлены до SQL.
И причина этого та же, что и причина, по которой вы вообще не должны этого делать: они почти наверняка упоминаются в другом месте вашей базы данных, когда вы используете код города для предотвращения дублирования - если вы начнете реорганизовывать числа, то каждая запись в этой таблице будет обновляться, и это приведет к двум проблемам:
1) Если какая - либо другая таблица ссылается на это через внешний ключ - как это должно быть и будет, - то внезапно связь нарушается, потому что "самое высокое значение" внезапно больше не существует. SQL не позволит этому случиться, поэтому изменения будут отклонены.
2) хуже того, если вы удалите Мумбаи, то все, что относится к Мумбаи через Sr.No "2" внезапно оказывается записанным как находящийся в Ченнаи. Это плохо, очень плохо, потому что требуется огромное количество ручных усилий, чтобы исправить данные, как только вы совершаете подобное изменение, особенно если вы не замечаете этого сразу.
Не делайте этого: если вам нужны последовательные числа, используйте ROWNUMBER() OVER
чтобы дать вам только это-временные значения, которые отражают текущее состояние. Не пытайтесь изменить существующие значения идентификаторов, чтобы "выглядеть аккуратно" - это всегда вызывает больше проблем, чем решает.