Установите IDENTITY в существующий столбец

У меня есть таблица, в которой есть поле идентификатора имени столбца целочисленного типа. Было объявлено ИДЕНТИЧНОСТЬ. И у него есть данные согласно IDENTITY. Но недавно я удалил столбец IDENTITY из этой таблицы. Теперь я хочу снова изменить это на IDENTITY. Но этот запрос говорит о неправильном синтаксисе

Alter table FuleConsumptions alter column  TransactionID INT IDENTITY(1,1);

Но я могу выполнить ту же задачу с помощью конструктора SQL-сервера в свойствах таблицы. Что я здесь делаю неправильно?


person chathwind    schedule 26.09.2018    source источник
comment
Вы не можете этого сделать - просто невозможно. Вы должны создать новый столбец и добавить в него IDENTITY   -  person marc_s    schedule 26.09.2018
comment
Вам понадобится дополнительный стол, чтобы заставить его работать. См. первые два ответа на этот вопрос (в зависимости от размера вашего набора данных). Добавление идентификатора в существующий столбец   -  person Eric Brandt    schedule 26.09.2018


Ответы (1)


Я думаю, что столбец идентификаторов будет содержать последовательность чисел, поэтому он выдает ошибку, лучше удалить столбец, затем создать его снова и установить IDENTITY

Alter Table FuleConsumptions Drop Column TransactionID
Go
ALTER TABLE FuleConsumptions
ADD TransactionID int; 
go
Alter table FuleConsumptions alter column  TransactionID INT IDENTITY(1,1);
person Zaynul Abadin Tuhin    schedule 26.09.2018
comment
Могу ли я сделать это без потери текущих данных столбца? - person chathwind; 26.09.2018
comment
@chathwind, в этом случае вы не можете начать с 1, вы можете там, где он заканчивается - person Zaynul Abadin Tuhin; 26.09.2018