0

次の詳細を含むテーブルがあります

テーブル名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 をスローして、コード操作が行われるようにすることです。

4

2 に答える 2

4

一意の制約 (主キーに追加) を追加するには、次のようにします。

ALTER TABLE EMPLOYEE ADD CONSTRAINT uc_UID UNIQUE (ADD_UID)
于 2010-10-07T09:03:56.263 に答える
-1

変更ステートメントによって任意のテーブルに新しい列を追加できますが、追加された列は可能でnullあり、どの列でも主キーが受け入れnullられないことがわかっています。
そのため、alter ステートメントによって新しく追加された列に主キーを作成することはできません。

于 2011-08-22T22:31:39.963 に答える