Добавление нового первичного ключа в существующую таблицу - PullRequest
0 голосов
/ 07 октября 2010

У меня есть таблица со следующими деталями

Имя таблицы EMPLOYEE и столбцы

EMPID (PK smallint not null)
EMPNAME (varchar 256 not null)
ORG (FK smallint not null)
FUNCTION (FK smallint not null)
EFF_DATE (datetime null)
AUDIT_ID (varchar null)

Теперь я должен добавить дополнительный столбец к этой таблице ADD_UID и сделать его также первичнымключ

Я использую этот запрос, но не могу.

ALTER TABLE CVADMIN.EMPLOYEE
 ADD ADD_UID  varchar(32) NULL,
 CONSTRAINT PK_EMPLOYEE PRIMARY KEY [NON]CLUSTERED (ADD_UID)
go

В таблице 'EMPLOYEE' уже определен первичный ключ.

EDIT

Идея в том, что новый столбец должен быть уникальным, чтобы в случае его сбоя я мог выбросить _KEY_VIOLATION, чтобы была выполнена некоторая манипуляция с кодом

Ответы [ 2 ]

4 голосов
/ 07 октября 2010

Чтобы добавить уникальное ограничение (которое является дополнительным к первичному ключу), сделайте следующее:

ALTER TABLE EMPLOYEE ADD CONSTRAINT uc_UID UNIQUE (ADD_UID)
0 голосов
/ 23 августа 2011

Мы можем добавить новые столбцы в любые таблицы с помощью оператора alter, но добавленный столбец может быть null, и вы знаете, что первичный ключ не принимает null для любого столбца.
Поэтому мы не можем создать первичный ключ для вновь созданногодобавлен столбец оператором alter.

...