主键更改为复合键(主键已经存在)(Change Primary Key to Composite K

2019-06-27 12:11发布

我想从现有的关键复合键,其中不包括现有列在我的SQL数据库更改表的主键。 下面的代码是不是由于以下错误消息的工作:

DROP PRIMARY KEY:

不正确的语法附近PRIMARY。 期待COLUMN,约束,ID或QUOTED_ID

ADD PRIMARY KEY:

不正确的语法附近PRIMARY。 期待ID

T-SQL代码:

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

编辑

我可以通过使用以下两种查询语句来完成此

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的约束”,也分离这两个动作分为两个查询帮助。

Answer 1:

    /* 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)


文章来源: Change Primary Key to Composite Key (Primary Key already exists)