Никита А. Зимин
Дата: 28.05.2004 14:19:05
Как с помощью SQL-запроса в Access сделать из поля NOT NULL - необязательное поле??? (Обращаюсь к базе с запросом через ADO.NET).
Пробовал так:
ALTER TABLE Manager ALTER COLUMN a_index Double; |
|
не работает
Пробовал так:
ALTER TABLE Manager ALTER COLUMN a_index Double NULL; |
|
тоже не работает.
Как сделать чтобы работало?
paparome
Дата: 28.05.2004 14:25:55
версия Акса какая?
Никита А. Зимин
Дата: 28.05.2004 14:37:44
Никита А. Зимин
Дата: 28.05.2004 14:38:41
версия Access - 2000 либо 2003
Geo
Дата: 28.05.2004 16:12:34
Никита А. Зимин
Дата: 28.05.2004 16:41:04
Geo, читать я умею. И писать запросы на создание/изменение таблиц - тоже.
Нужно конкретно - изменить состояние Nullable некоторого СУЩЕСТВУЮЩЕГО поля с True на False. Причем значения в таблице конечно терять не хочется.
Через Jet SQL-запросы это сделать не получается. Я привел примеры - они не работают, хотя синтаксически они правильны и принимаются Jet'ом (если у тебя работают и ты проверял - тогда скажи).
Через ADOX это сделать тоже не получается (см. BUG: Attributes Property of ADOX Columns Collection May Cause Append Method to Fail - особенно понравилось RESOLUTION). Судя по форумам, для новых полей изменение этого значения работает, для уже существующих - нет.
Короче, решения пока не вижу вообще.
Geo
Дата: 28.05.2004 17:10:37
Я сам спросил - то ли это (в конце знак стоит) ?
Сейчас поглядел в хелп - не увидел там варианта с NULL. Хотя сам акцесс съедает вопрос без сообщения об ошибке. Тогда, как вариант - можно создать аналогичное поле, слить в него данные из этого, удалить это, и переименовать в новое (ох и криво).
Никита А. Зимин
Дата: 28.05.2004 17:39:27
Внемлите мне, о программёры и прочие смертные!
Я нашел решение.
ALTER TABLE Manager ADD COLUMN temp_sex Bit;
UPDATE Manager SET temp_sex = sex;
ALTER TABLE Manager DROP COLUMN sex;
ALTER TABLE Manager ADD COLUMN sex Bit;
UPDATE Manager SET sex = temp_sex;
ALTER TABLE Manager DROP COLUMN temp_sex;
|
|
Вот такой вот секс!...
Geo
Дата: 28.05.2004 21:21:59
Cобственно, что я и сказал.
До этого, и прежде чем попробовал сам, видел это в поиске , в исполнении Лоха Позорного, Хама Трамвайного (а ники занимательные все-таки ;) и пары других уважаемых товарищей.
Спасибо им за это.
Сколько ж вопросов я не задал, научившись пользоваться поиском :))
Никита А. Зимин
Дата: 31.05.2004 08:34:39
Geo - спасибо за наметки.
А вообще - очень печально что в Access это не нельзя сделать одним SQL-оператором.
По пути наткнулся еще на то что через ADOX невозможно переименовать поле - так можно было бы уменьшить количество преобразований.