Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Изменение типа столбца таблицы / 19 сообщений из 19, страница 1 из 1
15.12.2004, 18:41:19
    #32829247
Програмёр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение типа столбца таблицы
Если таблица в MS Access MyTable

У этой таблицаы имеется столбец ID,
имеющий в аксессе свойства
Тип: числовой
Размер поля: код репликации
Обязательное: Да
Индексированное: Да

Надо через SQL запрос (через АДО) изменть этот столбец на допускающий нулевые значения (NULL). Как это сделать ?
...
Рейтинг: 0 / 0
15.12.2004, 18:42:21
    #32829250
Програмёр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение типа столбца таблицы
меня интересует сам SQL - запрос ;)
...
Рейтинг: 0 / 0
15.12.2004, 18:47:15
    #32829252
Roma R
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение типа столбца таблицы
Почитай в справке
ALTER TABLE
...
Рейтинг: 0 / 0
15.12.2004, 19:14:00
    #32829283
Програмёр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение типа столбца таблицы
делаю
ALTER TABLE [MyTable] ALTER [id] uniqueidentifier NULL
- отрабатывает правильно, но свойство обязательное полу в аксессе не сбрасывается и при попытке потом в это поле записать NULL АДО выкидывает

The field 'MyTable.id' cannot contain a Null value because the Required property for this field is set to True. Enter a value in this field

не работает :(
...
Рейтинг: 0 / 0
16.12.2004, 08:36:28
    #32829538
nibbles
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение типа столбца таблицы
Если не ошибаюсь, при создании PK в Access создается также и индекс по этому полю (полям) - его тоже надо удалить (тем же ALTER TABLE).
...
Рейтинг: 0 / 0
16.12.2004, 08:58:47
    #32829554
Изменение типа столбца таблицы
Это свойство (NULL / NOT NULL) после создания поля является неизменяемым.
Но выход есть - вот пример изменения типа поля Manager.diploma_number с Text(5) на Text(50) - точно так же можно поставить для нового поля любой тип и NULL/NOT NULL:
Код: plaintext
1.
2.
3.
4.
5.
6.
ALTER TABLE Manager ADD COLUMN temp_diploma_number Text(5);
UPDATE Manager SET temp_diploma_number = diploma_number;
ALTER TABLE Manager DROP COLUMN diploma_number;
ALTER TABLE Manager ADD COLUMN diploma_number Text(50);
UPDATE Manager SET diploma_number = temp_diploma_number;
ALTER TABLE Manager DROP COLUMN temp_diploma_number;
...
Рейтинг: 0 / 0
16.12.2004, 10:16:22
    #32829686
Програмёр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение типа столбца таблицы
> Если не ошибаюсь, при создании PK в Access создается также и индекс по этому > полю (полям) - его тоже надо удалить (тем же ALTER TABLE).
индекс удалял - не >помогает :(
ALTER TABLE MyTable DROP CONSTRAINT ID

Никита А. ЗиминЭто свойство (NULL / NOT NULL) после создания поля является неизменяемым.
Но выход есть - вот пример изменения типа поля Manager.diploma_number с Text(5) на Text(50) - точно так же можно поставить для нового поля любой тип и NULL/NOT NULL:
Код: plaintext
1.
2.
3.
4.
5.
6.
ALTER TABLE Manager ADD COLUMN temp_diploma_number Text(5);
UPDATE Manager SET temp_diploma_number = diploma_number;
ALTER TABLE Manager DROP COLUMN diploma_number;
ALTER TABLE Manager ADD COLUMN diploma_number Text(50);
UPDATE Manager SET diploma_number = temp_diploma_number;
ALTER TABLE Manager DROP COLUMN temp_diploma_number;


А при этом записи в Manager с полями dimploma_number не попортяться ?
...
Рейтинг: 0 / 0
16.12.2004, 10:58:17
    #32829809
Програмёр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение типа столбца таблицы
при попытке сделать
ALTER TABLE [MyTable] DROP COLUMN [ID]

адо выкидывает ошибку :(
Cannot delete a field that is part of an index or is needed by the system.
...
Рейтинг: 0 / 0
16.12.2004, 11:35:06
    #32829908
мдя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение типа столбца таблицы
Если допустимо АДО:

?currentdb.TableDefs("tabl").Fields("mid").Required
Истина
currentdb.TableDefs("tabl").Fields("mid").Required=False
?currentdb.TableDefs("tabl").Fields("mid").Required
Ложь
currentdb.TableDefs("tabl").Fields("mid").Required=true
...
Рейтинг: 0 / 0
16.12.2004, 11:35:31
    #32829910
мдя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение типа столбца таблицы
тьфу, ДАО
...
Рейтинг: 0 / 0
16.12.2004, 11:46:48
    #32829940
Програмёр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение типа столбца таблицы
рассматривается только АДО ;)
...
Рейтинг: 0 / 0
16.12.2004, 12:08:53
    #32829990
мдя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение типа столбца таблицы
фанатиков возможно спасет ADOX
...
Рейтинг: 0 / 0
16.12.2004, 12:20:51
    #32830025
Програмёр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение типа столбца таблицы
Какие фанатики ?! Надо поправить код в большом проекте что бы работало.
...
Рейтинг: 0 / 0
16.12.2004, 13:04:39
    #32830164
Shuhard
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение типа столбца таблицы
Програмерпри попытке сделать
ALTER TABLE [MyTable] DROP COLUMN [ID]

адо выкидывает ошибку :(
Cannot delete a field that is part of an index or is needed by the system.
1 а при чем здесь ADO - на поле сидит внешний ключ,его надо удалить,выкидывает JET
2 между DLL и ADOX разницы функционала нет,ADOX капризнее.
...
Рейтинг: 0 / 0
16.12.2004, 13:23:43
    #32830239
Програмёр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение типа столбца таблицы
Shuhard Програмерпри попытке сделать
ALTER TABLE [MyTable] DROP COLUMN [ID]

адо выкидывает ошибку :(
Cannot delete a field that is part of an index or is needed by the system.
1 а при чем здесь ADO - на поле сидит внешний ключ,его надо удалить,выкидывает JET
2 между DLL и ADOX разницы функционала нет,ADOX капризнее.

А как его проще всего определить как этот внешний ключ задан и как его удалить ?
...
Рейтинг: 0 / 0
16.12.2004, 14:07:51
    #32830381
Shuhard
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение типа столбца таблицы
дык открой access - схема данных
P.S. речь шла о большом проекте - в разрезе однотипных операций над большим числом таблиц или в разрезе значимости проекта ?
+ почему обязательно ADO, кто мешает сделать mdb прицепить файл(DAO) и окучить ?
...
Рейтинг: 0 / 0
16.12.2004, 14:13:59
    #32830394
Програмёр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение типа столбца таблицы
Shuhardдык открой access - схема данных
P.S. речь шла о большом проекте - в разрезе однотипных операций над большим числом таблиц или в разрезе значимости проекта ?
+ почему обязательно ADO, кто мешает сделать mdb прицепить файл(DAO) и окучить ?

В схеме данных всё чисто :( - нету вообще ничего

Большой проект, напичканный АДО, давно написан и работает - сейчас понадобилось что бы в поле могло быть и нулевым - добавили в большую процедуру конверсии таблиц этот код на пару строчек - ан не работает :( Так что надо найти причину и исправить - разве не понятно ? ;)
...
Рейтинг: 0 / 0
16.12.2004, 14:56:15
    #32830505
Shuhard
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение типа столбца таблицы
Код: plaintext
1.
2.
В схеме данных всё чисто :( - нету вообще ничего
Большой проект, напичканный АДО,так что надо найти причину и исправить - разве не понятно ? ;
1 если ключ не внешний,то возможно поле является частью индекса
2 если проект написан через доступ к данным через ADODB , то это вовсе не значит ,что все инструменты(особенно разовые) надо писать через то-же место.
...
Рейтинг: 0 / 0
16.12.2004, 15:15:57
    #32830546
Shuhard
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение типа столбца таблицы
в догон - конструктором поменял - ок
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Изменение типа столбца таблицы / 19 сообщений из 19, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]