Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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
14-1099482873
VEG
2004-11-03 14:54
2004.11.21
Ограничение на количество окон в Windows


1-1100012690
DimonNew
2004-11-09 18:04
2004.11.21
StringGrid & Rect


3-1098189214
Григорьев Антон
2004-10-19 16:33
2004.11.21
Арифметическое И в Access


1-1100108231
JustmE
2004-11-10 20:37
2004.11.21
DWORD/WORD -> STRING


3-1098269378
SiJack
2004-10-20 14:49
2004.11.21
Народ помогите!!! Не могу справится с kbmmemtable 4.04





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский