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 に答える