小编典典

将主键更改为复合键(主键已存在)

sql

我试图将我的SQL数据库中表的主键从现有键更改为复合键,其中不包括现有列。由于出现以下错误消息,因此以下代码无法正常工作:

删除主键:

PRIMARY附近的语法不正确。预期为COLUMN,CONSTRAINT,ID或QUOTED_ID

添加主键:

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 CONSTRAINT”,而将这两个动作分成两个查询也有帮助。


阅读 687

收藏
2021-03-23

共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)
2021-03-23