Форум: "Базы";
Текущий архив: 2004.11.21;
Скачать: [xml.tar.bz2];
ВнизРеструктуризация базы Access 2000 Найти похожие ветки
← →
TechnoDreamer (2004-10-19 01:30) [0]В базе есть поле типа "счетчик", при удалении записей, в этом поле появляется много пропусков, если какие то относительно, несложные способы, реструктуриазции такой базы? Т.е. надо вместо номеров: 1,18,19,20... сделать номера 1,2,3,4...
Работаю через ADO.
← →
sniknik © (2004-10-19 08:35) [1]ALTER TABLE xxx DROP COLUMN ID
ALTER TABLE xxx ADD COLUMN ID Autoincrement
если индека на нем нет то пересоздание автоматом установит новую нумеровку.
либо копированием в таблицу с аналогичной структурой не указывая поле счетчика
INSERT INTO xxx SELECT NotIDFields FROM xxx
после старую таблицу удаляеш новую переименовываеш (код переименования, правда на бейсике, но перевести несложно совсем, надеюсь ;о)))
Sub RenameTable (conStr, oldName, newName)
"Должно быть соединение OLE DB
"Создадим объект и подсоединимся к БД...
Dim objADOXDatabase
Set objADOXDatabase = Server.CreateObject("ADOX.Catalog")
objADOXDatabase.ActiveConnection = conStr
"Изменим имя...
objADOXDatabase.Tables(oldName).Name = newName
"Очистка...
Set objADOXDatabase = Nothing
End Sub
но только гарантий, что порядок по возрастанию совпадет нет, из свойств SQL вытекает, не, скорее всего порядок будет правильный но гарантий нет. также как нет гарантий на порядок строк в запросе без сортировки.
← →
Ильш (2004-10-19 08:42) [2]поле типа "счетчик" - это есть уникальный идентификатор записи, первичный ключ
и вот так вот реструктуризировать совершенно нельзя
если ты используешь это поле в других связанных таблицах, то как потом связи наладишь????
а если не используешь, то нафига нужно это поле?
лучше не трожь
← →
sniknik © (2004-10-19 08:54) [3]> поле типа "счетчик" - это есть уникальный идентификатор записи, первичный ключ
вовсе не обязательно, иногда это просто задаюшее порядок поле. а уж то что оно чаще всего первичный ключ это общепринятая концепция но не обязаловка.
← →
Ильш (2004-10-19 09:03) [4]согласен...
но вот смысла в этом вот
> 1,18,19,20... сделать номера 1,2,3,4...
совсем не вижу
по любому порядок будет...
← →
Shuma © (2004-10-19 12:40) [5]поле типа "счетчик" - это длинное целое посчитай сколько записей надо сделать чтобы получилось переполнение! Тебе этого поля на всю жизнь хватит.
← →
TechnoDreamer (2004-10-20 01:15) [6]Поле не с чем не связано, так что связи не нарушаться.
Смысл есть, так как это поле выводится юзеру, и ему не понятно будет почему в его базе с 20 записями, 3-4 значные номера, которые всё время растут, оно конечно не жизненно важно, но не красиво. К тому же по этому поле происходит поиск.
← →
Vemer © (2004-10-20 01:28) [7]Для номера используй вычисляемое поле через ДатаСет.Rec_No.
← →
TechnoDreamer (2004-10-20 22:09) [8]2Vemer:
Спасибо, хорошая идея.
← →
Ильш (2004-10-25 13:59) [9]идея просто супер!
она появляется если немного подумать !
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.11.21;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.034 c