1

是否可以在已经具有唯一非聚集索引的表中添加主键?

我有一个表 cargo_car,我需要将 cd_cargo_car 定义为 PK。

我试过这个:

ALTER TABLE dbo.cargo_car ADD PRIMARY KEY (cd_cargo_car)

但我收到了错误:

Error (1921) An index with the same columns inthe same order alredy exists onthe table

该表有很多依赖项,当我尝试删除收到的索引时:

Error (3712) Cannot drop index 'cargo_car.XPKcargo_car' because it still has referential integrity constraints.

这是创建脚本:

CREATE TABLE dbo.cargo_car
    (
    cd_cargo_car      SMALLINT NOT NULL,
    nm_cargo_car      VARCHAR (40) NOT NULL,
    cd_refini_car     CHAR (4) NOT NULL,
    cd_reffin_car     CHAR (4) NOT NULL,
    cd_jornada1_car   CHAR (2) NOT NULL,
    cd_jornada2_car   CHAR (2) NOT NULL

    )
GO

CREATE UNIQUE NONCLUSTERED INDEX XPKcargo_car
    ON dbo.cargo_car  (cd_cargo_car)
GO

关于如何做到这一点的建议?

Tks

4

1 回答 1

1

您将不得不删除其他表上的所有外键约束,删除该索引,创建主键(我猜您希望它被聚集?),然后重新创建外键约束。– 民主党

为了允许结束这个问题,我将该评论转换为答案。这是正确的,类似于我想写的......

于 2012-11-28T14:17:49.050 回答