Форум: "Базы";
Текущий архив: 2003.06.26;
Скачать: [xml.tar.bz2];
Внизкак удалить таблицу c помощью SQL так, что бы... Найти похожие ветки
← →
abc (2003-06-03 14:52) [0]как удалить таблицу с помощью SQL так, что бы автоинкрементное поле начиналось снова с 1 (Paradox 7.0)
← →
Соловьев (2003-06-03 15:01) [1]удалить все записи? или таблицу? ты определись.
← →
Sandman25 (2003-06-03 15:12) [2]Удалите таблицу и сделайте ее заново.
Если в ней есть данные, то вопрос не имеет смысла.
← →
abc (2003-06-03 16:01) [3]заного делать не вариант, десктопом создавалась, 90 полей,
подумай сам
даже если удались все записи, то автоинкремент начнётся не с 1, а с текщего значения, но всё таки надо, что бы файл остался со своей структурой полей
← →
stone (2003-06-03 16:18) [4]СУБД ????
> заного делать не вариант, десктопом создавалась, 90 полей
Предпложительно Paradox
Попробуй EmptyTable
← →
sniknik (2003-06-03 16:19) [5]> заного делать не вариант, десктопом создавалась, 90 полей,
сделать новую
select * into ... from ... where 1=2
> остался со своей структурой полей
а старую удалить. (извинятся если это Local SQL не буду, сам не указывает)
← →
Anatoly Podgoretsky (2003-06-03 16:50) [6]Это противоречит понятию AutoIncrement, у тебя уже получается не Auto и не Increment.
Только созданием новой таблицы.
← →
kaif (2003-06-04 00:20) [7]Извлеки всю таблицу в TTable.FieldDefs (программно). Затем используй TTable.CreateTable. Если конечно, у тебя нет foreign key на эту таблицу. Индексы тоже можно runtime создать через методы TTable.
Если ты думаешь, что DatabaseDesktop делает что-то более мудрое, то это не так. Вполне можно такое реализовать с помощью одного компонента TTable. И быстрее будет, чем данные делетировать с помощью SQL. Все равно SQL этот по одной записи все удалять будет.
← →
Sandman25 (2003-06-04 10:26) [8]kaif © (04.06.03 00:20)
Зачем нужно удалять записи SQL, если все равно планируется пересоздать таблицу? DROP TABLE работает и для непустой таблицы.
← →
Dred2k (2003-06-04 10:57) [9]SQL тут и не нужен.
Все сделает TTable.
1. Открываем старую. Затем FieldDefs.Update, IndexDefs.Update;
2. Заполняем свойства новой.
TableName := "...";
TableType := ttParadox;
TableLevel := <по вкусу>;
FieldDefs.Assign(старая.FieldDefs);
IndexDefs.Assign(старая.IndexDefs);
CreateTable;
Будет создана новая таблица, по структуре аналогичная старой (только кроме форейн-кеев, паролей и т.п.), со всеми индексами.
Затем закрываешь старую, делаешь старая.DeleteTable;
Новую закрываешь (хотя CreateTable ее и не открывал...), делаешь ей RenameTable("имя как было у старой").
Вот и все.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2003.06.26;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.029 c