我试图将我的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”,而将这两个动作分成两个查询也有帮助。
/* 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)