Подтвердить что ты не робот

Невозможно изменить спецификацию идентификатора на "Да" в таблице Sql Server

Это может быть глупый вопрос, но почему я не могу изменить спецификацию Identity или (Is Identity) с "Нет" на "Да"?

4b9b3361

Ответ 1

Проверьте тип данных столбца.

Если это varchar, вы не можете изменить столбец идентификаторов.

Чтобы изменить столбец идентификатора, он должен иметь тип данных int.

Ответ 2

Вы не можете изменить свойство IDENTITY столбца в существующей таблице. Вы можете добавить новый столбец с свойством IDENTITY, удалить старый столбец и переименовать новый столбец со старым именем столбца.

Конечно, то, что происходит тогда (для некоторых людей), заключается в том, что им не нравится тот факт, что новый столбец появляется "в конце" списка столбцов (хотя вы не должны заботиться о позициях столбцы - вы всегда должны использовать их имена). В этом случае вам нужно сделать один и тот же трюк, но на более высоком уровне - создать новую таблицу (с изменением определения столбца), скопировать данные из старой таблицы в новую, удалить старую таблицу и переименовать новую.

Я думал, что SSMS все еще пыталась притвориться, что это возможно, сделав второй трюк за кулисами.

Ответ 3

Вы можете отключить опцию "предотвратить сохранение изменений, требующих повторного создания таблицы" но это настоятельно не рекомендуется с помощью msdn.

чтобы сделать это:

Инструменты → Опции → Дизайнеры Отмените выбор: "предотвратите сохранение изменений, требующих повторного создания таблицы"

Ответ 4

Также проверьте, чтобы в столбце не было значения по умолчанию или привязки.

Ответ 5

Удалить значение по умолчанию или привязку.

Ответ 6

Следуя вышеприведенному комментарию Damien_The_Unbeliever, вы можете отредактировать порядок столбцов в интерфейсе проектирования Visual Studio.

Мне удалось сделать это успешно. Для подтверждения выполните следующие шаги:

  • Добавить новый столбец с свойством IDENTITY
  • удалить старый столбец,
  • Переименуйте новый столбец со старым именем столбца.
  • (Необязательно) Переупорядочить столбцы, чтобы иметь столбец IDENTITY из Visual Studio.