14

我正在尝试将我的 SQL 数据库中表的主键从现有键更改为不包括现有列的复合键。由于以下错误消息,以下代码不起作用:

删除主键:

PRIMARY 附近的语法不正确。需要 COLUMN、CONSTRAINT、ID 或 QUOTED_ID

添加主键:

PRIMARY 附近的语法不正确。期待身份证

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

4

1 回答 1

26
    /* 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)
于 2012-08-28T21:31:52.820 回答