Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Базы данных и репортинг > Пронумировать ВСЕХ!


Автор: mhalion 15.10.2007, 09:02
Есть база на аксесе с ключевым полем Number (Остальные поля сейчас не важны). Там все номера вразнобой, а хочется сделать их по возрастанию. Подскажите SQL запросик для того, чтоб всех их пронумеровать, а то если писать в делфе долго выполняться будет...

Автор: Lunatikus 15.10.2007, 11:09
могу ошибаться,но если все так,как я понял,я бы сделал так:создал аналогичную таблицу без данных и запросом скопировал данные в нее.А твое ключевое поле при этом сделал бы счетчиком.Тогда после запроса:
Код

INSERT INTO T2(поля из исходной таблицы без поля-счетчика)
SELECT <поля из исходной таблицы без ключевого поля> FROM T1

получишь упорядоченные номера

T1-исходная таблица
T2-новая таблица
Наверняка есть более рациональное решение.

Автор: Anark1 15.10.2007, 15:08
mhalion, если они пронумерованы то, чтобы получить записи по возрастанию, не нужно их всех заново пронумеровывать.
Чтобы получить выборку по возрастанию можно выполнить соответствующий SQL запрос. Плюс еще можно добавить UNIQUE ASCENDING INDEX по данному полю.

Автор: mhalion 16.10.2007, 09:22
Мне нужно было перенумеровать записи, а не просто вывести их по возрастанию. Я сделал так: Сначала перенумеровал записи с максимального индекса и выше, а затем перенумеровал их с 1го индекса и выше. Грубо, но зато работает и бес создания дополнительной таблицы

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)