Главная страница
    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-45897
UNI_DeMoN
2002-11-06 02:33
2002.11.14
ОООЧЕнь нужны алгоритмы для разбора предложения на предикаты


1-45824
xnum
2002-11-05 10:43
2002.11.14
runtime packages


3-45717
Fishka
2002-10-23 15:22
2002.11.14
Ограничение на значение в столбце


1-45807
Anar
2002-10-30 16:30
2002.11.14
Проблема с системным меню


14-46061
AL2002
2002-10-22 18:23
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский