Форум: "Базы";
Текущий архив: 2002.11.14;
Скачать: [xml.tar.bz2];
Вниз
Сложный вопрос по SQL Найти похожие ветки
← →
Beglec (2002-10-21 17:27) [0]1. Как сделать так, что бы при помощи SQL
поле Name Char(30) превратить в поле Name Char(40);
Как это можно сделать, не теряя данных.
Да и такой чисто технологический фопрос.
Каким образом SQL добавляет поле в базу данных не теряя данных?
То есть, (Движок SQL) переписывает весь файл физически заного или есть какой либо алгоритм, для переписЬки :)
Зарнее спосибо за помощь
← →
Дед Макар (2002-10-21 17:52) [1]Это действительно очень сложный вопрос... Гуру баз данных обычно решают его, читая синтаксис SQL-запроса ALTER TABLE для конкретной БД или создают новую таблицу, практически повторяющую исходную за исключением нужного столбца и выполняют запрос INSERT INTO NewTable SELECT * FROM OldTable (если уж хочется понадежнее :) )
← →
asmith (2002-10-24 18:19) [2]Если не нужно менять структуру таблицы, а только изменить длину поля в запросе, то в MS SQL Server можно делать так:
select Name, convert(varchar(40), Name) from Table
← →
Johnmen (2002-10-24 18:25) [3]>asmith (24.10.02 18:19)
Причем здесь MS SQL Server ???
>Beglec ©
ALTER TABLE T ADD tmp char(40);
UPDATE T SET tmp=Name;
ALTER TABLE T DROP Name;
ALTER TABLE T ADD Name char(40);
UPDATE T SET Name=tmp;
ALTER TABLE T DROP tmp;
← →
Val (2002-10-24 18:28) [4]>Beglec © (21.10.02 17:27)
для переноса достаточно создать не копию таблицы, а таблицу вида ID, Field_Name, затем перекачать данные, изменить столбец, перекачать обратно, удалить временную таблицу.
← →
Val (2002-10-24 18:30) [5]>Johnmen © (24.10.02 18:25)
:) пойду домой, отдохнуть надо, похоже.
← →
Johnmen (2002-10-24 18:32) [6]>Val © (24.10.02 18:30)
Да, уже пора домой....:)))
← →
MsGuns (2002-10-24 20:18) [7]>Val © (24.10.02 18:30)
Просто, как все гениальное !))
← →
Anatoly Podgoretsky (2002-10-24 20:30) [8]Johnmen © (24.10.02 18:25)
Хотел то же самое (близкое) подсказать, ты опередил, я просто суммирую.
Для любого типа баз, реструктировать можно в 6 шагов
1. создать новое временное поле нужной струтуры
2. скопировать в него из старого
3. удалить старое поле
4. создать его опять но уже должного типа
5. скопировать из временного
6. удалить временное
Для парадокс правильнее использовать процедуры и функции BDE
← →
Jeer (2002-10-24 21:46) [9]Для Paradox МОЖНО использоватьнизкоуровенные функции dbi (BDE)
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2002.11.14;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.008 c