web-dev-qa-db-ja.com

主キーを複合キーに変更します(主キーはすでに存在します)

SQLデータベースのテーブルの主キーを既存のキーから既存の列を含まない複合キーに変更しようとしています。次のエラーメッセージのため、次のコードは機能しません。

DROP PRIMARY KEY:

PRIMARYの近くの構文が正しくありません。 COLUMN、CONSTRAINT、ID、またはQUOTED_IDが必要です

主キーを追加:

PRIMARYの近くの構文が正しくありません。 IDが必要です

T-SQLコード:

ALTER TABLE AgentIdentification 
DROP PRIMARY KEY Number, 
ADD PRIMARY KEY (AgentId, IdIndicator)

編集

次の2つのクエリステートメントを使用してこれを実現できました

ALTER TABLE AgentIdentification 
DROP CONSTRAINT [PK_AgentId_Id]
GO

ALTER TABLE AgentIdentification
ADD CONSTRAINT pk_PersonID PRIMARY KEY (AgentId, IdIndicator)

SQL「DROP PRIMARY KEY」を要求する代わりに、「DROP CONSTRAINT」にそれを伝える必要があり、これら2つのアクションを2つのクエリに分離することも役立ちました。

12
NealR
    /* For SQL Server/Oracle/MS Access */
    ALTER TABLE  AgentIdentification 
    DROP CONSTRAINT PK_Table1_Col1


    /* For MySql */
    ALTER TABLE  AgentIdentification 
    DROP PRIMARY KEY

主キーを追加するには:

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Table1
ADD CONSTRAINT pk_PersonID PRIMARY KEY (AgentId, IdIndicator)
23
Ruzbeh Irani