Это может быть глупый вопрос, но почему я не могу изменить спецификацию Identity или (Is Identity) с "Нет" на "Да"?
Невозможно изменить спецификацию идентификатора на "Да" в таблице Sql Server
Ответ 1
Проверьте тип данных столбца.
Если это varchar
, вы не можете изменить столбец идентификаторов.
Чтобы изменить столбец идентификатора, он должен иметь тип данных int
.
Ответ 2
Вы не можете изменить свойство IDENTITY столбца в существующей таблице. Вы можете добавить новый столбец с свойством IDENTITY, удалить старый столбец и переименовать новый столбец со старым именем столбца.
Конечно, то, что происходит тогда (для некоторых людей), заключается в том, что им не нравится тот факт, что новый столбец появляется "в конце" списка столбцов (хотя вы не должны заботиться о позициях столбцы - вы всегда должны использовать их имена). В этом случае вам нужно сделать один и тот же трюк, но на более высоком уровне - создать новую таблицу (с изменением определения столбца), скопировать данные из старой таблицы в новую, удалить старую таблицу и переименовать новую.
Я думал, что SSMS все еще пыталась притвориться, что это возможно, сделав второй трюк за кулисами.
Ответ 3
Вы можете отключить опцию "предотвратить сохранение изменений, требующих повторного создания таблицы" но это настоятельно не рекомендуется с помощью msdn.
чтобы сделать это:
Инструменты → Опции → Дизайнеры Отмените выбор: "предотвратите сохранение изменений, требующих повторного создания таблицы"
Ответ 4
Также проверьте, чтобы в столбце не было значения по умолчанию или привязки.
Ответ 5
Удалить значение по умолчанию или привязку.
Ответ 6
Следуя вышеприведенному комментарию Damien_The_Unbeliever, вы можете отредактировать порядок столбцов в интерфейсе проектирования Visual Studio.
Мне удалось сделать это успешно. Для подтверждения выполните следующие шаги:
- Добавить новый столбец с свойством IDENTITY
- удалить старый столбец,
- Переименуйте новый столбец со старым именем столбца.
- (Необязательно) Переупорядочить столбцы, чтобы иметь столбец IDENTITY из Visual Studio.