将新主键添加到现有表

时间:2010-10-07 08:44:57

标签: sql-server primary-key-design

我有以下详细信息的表格

表名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'已经定义了主键。

修改

这里的想法是新列应该是唯一的,这样如果它失败了我可以抛出_KEY_VIOLATION以便完成一些代码操作

2 个答案:

答案 0 :(得分:4)

要添加唯一约束(主键附加),请执行以下操作:

ALTER TABLE EMPLOYEE ADD CONSTRAINT uc_UID UNIQUE (ADD_UID)

答案 1 :(得分:-1)

我们可以通过alter statement在任何表上添加新列,但添加的列可以是null,并且您知道主键不接受任何列上的null
因此,我们无法通过alter statement在新添加的列上创建主键。