Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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
1-45901
Shaman2002
2002-11-05 18:41
2002.11.14
Как нарисовать дугу?


6-46033
Vasily5000
2002-09-17 04:31
2002.11.14
Delphi, Cgi and MIME.


14-46105
blackman
2002-10-22 23:10
2002.11.14
Кто и сколько времени пишет программы на DELPHI ?


14-46132
AL2002
2002-10-24 19:17
2002.11.14
100%-ый плагиат?


4-46199
Иван
2002-10-03 09:46
2002.11.14
Сообщение о копировании





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский