Редактируем столбец идентификатора

По умолчанию в MS SQL Server изменение столбца содержащего идентификатор заблокировано. Однако в случае необходимости значения в нём всё-таки можно скорректировать.

Рассмотрим несложный пример. Допустим есть таблица, которая содержит два поля: идентификатор и мужское имя. Содержимое таблицы показано на скриншоте ниже.

Исходная таблица

Отредактируем значение идентификатора для одной из её записей. Пусть это будет запись в которой имя равно «Михаил».

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

К сожалению, данный режим позволяет только вставлять собственные значения в столбец идентификатора. То есть оператор UPDATE для него всё равно не поддерживается. Но, мы вполне можем удалить исходную запись и вставить новую такую же, только с другим идентификатором.

После вставки записи обязательно отключаем режим вставки значения в столбец идентификатора.

Результат вышеописанных манипуляций показан на скриншоте.

Результат

Значение идентификатора у требуемой записи изменено.

Данная статья по существу описывает ручное редактирование идентификатора, у которого, к сожалению, есть и «обратная сторона медали».

Ручное редактирование идентификатора чревато нарушением целостности данных, а также их искажением.

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

.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *