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つのクエリに分離することも役立ちました。
/* 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)