Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.06.2011, 12:08   #1
DIgorevich
Погулять вышел
Участник клуба
 
Аватар для DIgorevich
 
Регистрация: 17.05.2010
Сообщений: 1,573
По умолчанию Access клонирование таблицы с новым именем

Здравствуйте!
Где-то раньше видел и использовал, но поиск ничего не дал. Не могу вспомнить каким образом можно скопировать существующую таблицу, путем создания копии оной с новым именем...

Код:
      Form1.ADOQuery1.SQL.Clear;
      Form1.ADOQuery1.SQL.Add('CREATE TABLE new_table select * from old_table);
      Form1.ADOQuery1.ExecSQL;
данный код не работает, ругается на неверный синтаксис. Прошу знающих людей помочь.
Никогда не знаешь, где тебе повезет... (Фрай)
DIgorevich вне форума Ответить с цитированием
Старый 18.06.2011, 15:39   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

если мне не изменяет память, то
такой запрос создаёт таблицу из запроса:
Код:
SELECT *  INTO new_table  FROM old_table;
Serge_Bliznykov вне форума Ответить с цитированием
Старый 18.06.2011, 15:41   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

М.м.м по-моему как-то так:
Код:
insert into new_table select * from old_table
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 18.06.2011, 15:48   #4
DIgorevich
Погулять вышел
Участник клуба
 
Аватар для DIgorevich
 
Регистрация: 17.05.2010
Сообщений: 1,573
По умолчанию

Serge_Bliznykov, в твоем случае ругается на неполный синтаксис.
Stilet, а в твоем, на то, что не удается найти "выходную таблицу", т.е. new_table
Никогда не знаешь, где тебе повезет... (Фрай)
DIgorevich вне форума Ответить с цитированием
Старый 18.06.2011, 15:58   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Наверное в моем случае нужно всетки создание таблицы вызывать еще...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 18.06.2011, 16:08   #6
DIgorevich
Погулять вышел
Участник клуба
 
Аватар для DIgorevich
 
Регистрация: 17.05.2010
Сообщений: 1,573
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Наверное в моем случае нужно всетки создание таблицы вызывать еще...
если вызываю создание:
Код:
CREATE TABLE insert into new_table select * from old_table
то опять вываливается ошибка синтаксиса.
если делаю
Код:
CREATE TABLE [insert into new_table select * from old_table]
то создается таблица с именем "insert into new_table select * from old_table", которая воспринимается аксесом, как еще один неправильный запрос.
Никогда не знаешь, где тебе повезет... (Фрай)
DIgorevich вне форума Ответить с цитированием
Старый 18.06.2011, 17:15   #7
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Код:
select *
  into NewTable
  FROM OldTable
хотя віше уже предлагалось.

Проверил у себя. Нормально создает в D7 и Access2003
Код:
  ADOQuery1.SQL.Add('SELECT * INTO NewTable FROM OldTable');
  ADOQuery1.ExecSQL;
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 18.06.2011 в 17:42.
Аватар вне форума Ответить с цитированием
Старый 18.06.2011, 17:45   #8
DIgorevich
Погулять вышел
Участник клуба
 
Аватар для DIgorevich
 
Регистрация: 17.05.2010
Сообщений: 1,573
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Код:
select *
  into NewTable
  FROM OldTable
хотя віше уже предлагалось.

Проверил у себя. Нормально создает в D7 и Access2003
Код:
  ADOQuery1.SQL.Add('SELECT * INTO NewTable FROM OldTable');
  ADOQuery1.ExecSQL;
Да, действительно создает, только почему-то ключевым поле столбец не делает, как в исходной таблице...
Никогда не знаешь, где тебе повезет... (Фрай)
DIgorevich вне форума Ответить с цитированием
Старый 18.06.2011, 17:48   #9
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

И не будет делать, такое клонирование типы полей копирует, а что касается остального - нет
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 18.06.2011, 17:58   #10
DIgorevich
Погулять вышел
Участник клуба
 
Аватар для DIgorevich
 
Регистрация: 17.05.2010
Сообщений: 1,573
По умолчанию

Может тогда подскажите, как сделать в только что скопированной таблице, поле ключевым?
Никогда не знаешь, где тебе повезет... (Фрай)
DIgorevich вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Access ограничить значение поля таблицы значениями полей другой таблицы Сергей089 Microsoft Office Access 10 08.12.2010 02:22
Клонирование компонента chandrasecar Общие вопросы Delphi 8 31.10.2010 17:57
Клонирование Windows XP DJ HITMAN Windows 6 20.08.2010 13:35
как в цикле создавать массив с одним и тем же именем!?ошибка в ходе выполнения -access violation at addr sleevman Помощь студентам 2 28.10.2009 19:06
структура таблицы базы данных с именем WORKER Vollmond36 Помощь студентам 1 01.12.2008 22:20