У меня есть база данных MS SQL 2005 с таблицей Test
с колонкой ID
. ID
- это столбец идентичности.Как изменить значения столбца идентификатора программным путем?
У меня есть строки в этой таблице, и все они имеют соответствующее значение автоинкрементного ID.
Теперь я хотел бы изменить каждый идентификатор в этой таблице, как это:
ID = ID + 1
Но когда я делаю это я получаю сообщение об ошибке:
Cannot update identity column 'ID'.
Я попытался это:
ALTER TABLE Test NOCHECK CONSTRAINT ALL
set identity_insert ID ON
Но это не решит проблему.
Мне нужно установить идентификатор в этот столбец, но мне также нужно время от времени менять значения. Поэтому мой вопрос заключается в том, как выполнить эту задачу.
. Настройка будет работать только при вставке данных, а не при обновлении. Инструкция UPDATE все равно не удастся. –
Для обновления вам необходимо удалить и повторно вставить. Другого пути нет. – ashes999
@MartinSmith ваше решение кажется слишком длинным.Возможность сделать это в два этапа (идентификация, удаление/вставка, идентификация) намного эффективнее. – ashes999