Изменить таблицу Установить столбец Идентичность - PullRequest
3 голосов
/ 05 марта 2012

У меня есть таблица sybase («Тест»), имеющая следующие столбцы:

MyIdentity numberic(9,0)
Name
User

Таблица заполнена множеством записей. Я хочу изменить столбец MyIdentity на идентификатор.

В настоящее время в таблице нет повторяющихся значений для MyIdentity. Как я могу изменить таблицу и установить MyIdentity как личность?

Ответы [ 3 ]

0 голосов
/ 05 марта 2012

Видимо, вы не можете, что-то вроде

Create a new Table called test2 with the identity set up

Then

Set Identity_Insert Test2 On

Insert Test2 Select * From Test

Set Identity_Insert Test2 Off

Drop Test and Rename Test 2...
0 голосов
/ 14 февраля 2014

По крайней мере, в моей версии (Adaptive Server Enterprise / 15.0.3), кажется, что сработало следующее (синтаксический сахар пропущен):

Добавить новый столбец идентификаторов:

alter table Test add newMyIdentity numeric(9,0) identity not null

Подготовьтесь к обновлениям:

set identity_insert Test on
set identity_update Test on

Скопируйте существующий идентификатор (чтобы иметь возможность сохранить внешние ключи и т. Д.):

update Test set newMyIdentity=MyIdentity

Удалите старое определение, переименуйте вновь созданный столбец:

alter table Test drop MyIdentity
sp_rename "Test.newMyIdentity", MyIdentity

Очистка:

set identity_insert Test off
set identity_update Test off
sp_recompile Test
0 голосов
/ 05 марта 2012

Просто используйте:

create index MyIdentity on Test

См. http://manuals.sybase.com/onlinebooks/group-as/asg1250e/sqlug/@Generic__BookTextView/36137;pt=36137.

...