Sybase唯一索引和主键

时间:2012-10-22 13:23:23

标签: sql sql-server indexing primary-key sybase

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

我有一个table 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

建议如何做到这一点?

韩国社交协会

1 个答案:

答案 0 :(得分:1)

  

你将不得不放弃所有的外键约束   其他表,删除该索引,创建主键(我猜你   希望它被聚集?),然后重新创建外键约束。    - Dems

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