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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.10.2012, 21:26   #1
vmilyoshin
Пользователь
 
Регистрация: 20.02.2010
Сообщений: 66
По умолчанию SQL удалить индексированный столбец в таблице Access

Делаю так:

try
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('ALTER TABLE POLIS DROP COLUMN [Номер документа];');
ADOQuery1.ExecSQL;
except
end;

Поле "Номер документа" текстовое (индексированное, допускаются совпадения)

Данный столбец удаляется если он не индексированный. Но в моей таблице он индексированный и по этому не удаляется.
Как его удалить?
vmilyoshin вне форума Ответить с цитированием
Старый 06.10.2012, 21:44   #2
Yurk@
Участник клуба
 
Аватар для Yurk@
 
Регистрация: 19.12.2007
Сообщений: 1,100
По умолчанию

удали сначала индекс, а потом саму колонку
На форуме: Помогаю за спасибо
ICQ\Skype: Это моё личное время ...
Yurk@ вне форума Ответить с цитированием
Старый 06.10.2012, 21:46   #3
vmilyoshin
Пользователь
 
Регистрация: 20.02.2010
Сообщений: 66
По умолчанию

Цитата:
Сообщение от Yurk@ Посмотреть сообщение
удали сначала индекс, а потом саму колонку
А как его удалить?
vmilyoshin вне форума Ответить с цитированием
Старый 06.10.2012, 22:16   #4
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию

не уверен точно какой синтаксис в Аксесе, но, вроде, так
Код:
DROP INDEX "_MY_INDEX"
_SERGEYX_ вне форума Ответить с цитированием
Старый 06.10.2012, 22:20   #5
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

DROP INDEX index_name ON table_name
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 06.10.2012, 22:27   #6
vmilyoshin
Пользователь
 
Регистрация: 20.02.2010
Сообщений: 66
По умолчанию

Цитата:
Сообщение от _SERGEYX_ Посмотреть сообщение
не уверен точно какой синтаксис в Аксесе, но, вроде, так
Код:
DROP INDEX "_MY_INDEX"
Не помогло.
vmilyoshin вне форума Ответить с цитированием
Старый 06.10.2012, 22:48   #7
vmilyoshin
Пользователь
 
Регистрация: 20.02.2010
Сообщений: 66
По умолчанию

Даже такой код не помогает:

try
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('ALTER TABLE POLIS ALTER INDEX [Номер документа] INACTIVE;');
ADOQuery1.ExecSQL;
except
end;
try
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('ALTER TABLE POLIS DROP INDEX [Номер документа];');
ADOQuery1.ExecSQL;
except
end;
try
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('ALTER TABLE POLIS DROP COLUMN [Номер документа];');
ADOQuery1.ExecSQL;
except
end;

Неужели ни кто не знает?
vmilyoshin вне форума Ответить с цитированием
Старый 06.10.2012, 23:26   #8
vmilyoshin
Пользователь
 
Регистрация: 20.02.2010
Сообщений: 66
По умолчанию

Всё оказалось на много проще. Додумался сам. Может кому пригодится.

try
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('ALTER TABLE POLIS DROP CONSTRAINT [Номер документа];');
ADOQuery1.ExecSQL;
except
end;
try
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('ALTER TABLE POLIS DROP COLUMN [Номер документа];');
ADOQuery1.ExecSQL;
except
end;

Всем спасибо!!!
vmilyoshin вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удалить ключевой столбец apelsun SQL, базы данных 6 24.05.2012 20:34
Удалить столбец матрицы(Pascal) lPolar Помощь студентам 0 25.12.2011 19:04
Удалить столбец со всех листов. contrelesgaz Microsoft Office Excel 5 29.04.2011 00:22
Удалить через SQL строку в таблице ADOQuery1 UNToxa БД в Delphi 2 20.03.2011 15:44
VBA_макрос: удалить всю строку в таблице, если в ней есть слово "удалить" макарошка Microsoft Office Excel 15 05.10.2010 09:09