Доступ: Как изменить столбец, чтобы противостоять существующим строкам в таблице?
Я знаю, что это не может быть легко решено этим утверждением:
ALTER TABLE BLOCK ALTER COLUMN block_id COUNTER(5000,1) PRIMARY KEY;
-- I get here error saying about wrong column type
Из-за 2 причин:
- стол должен быть пустым
- таблица не должна иметь первичный ключ
У меня есть такая упрощенная схема:
Мне нужно сделать в block
Таблица block_id
столбец и в record
Таблица record_id
столбец, чтобы быть счетчиком. Source_id
колонка в Source
это уже счетчик. Проблема здесь в том, что таблицы имеют соединение, как показано на картинке. И все это 3 таблицы заполнены данными.
Max(block_id) = 4129
Max(record_id) = 9047
И я хочу, чтобы эти столбцы были счетчиком, начиная с 2 значений, написанных ранее. Есть ли решение без создания временных таблиц?
1 ответ
Это невозможно сделать без временных таблиц. Первичный ключ не является проблемой, но вы никогда не можете изменить поле INT на AutoNumber, если есть данные.
Вам нужно использовать запрос на добавление (INSERT INTO), чтобы скопировать существующие идентификаторы в новую таблицу с автонумерацией.
Эта ссылка может дать вам несколько идей: Как сбросить значение поля AutoNumber в Access