我正在尝试将SQL数据库中的表的主键从现有密钥更改为复合密钥,该密钥不包括现有列。由于以下错误消息,以下代码无效:
DROP PRIMARY KEY:
PRIMARY附近的语法不正确。期待COLUMN,CONSTRAINT,ID或 QUOTED_ID
添加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 CONSTRAINT”,而且还将这两个动作分成两个查询。
答案 0 :(得分:22)
/* 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)