【发布时间】:2012-08-23 11:00:22
【问题描述】:
我正在尝试将我的 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)
我需要告诉它“DROP CONSTRAINT”,而不是请求 SQL“DROP PRIMARY KEY”,将这两个操作分成两个查询也有帮助。
【问题讨论】:
-
请用正确的 RDBMS 标记它。 SQL不是数据库;它是一种被许多人使用的语言(在每种情况下略有不同)。
-
要删除 PK 字段还是 PK 约束?
-
请:1) 指定您的数据库,2) 剪切/粘贴确切的错误消息,3) 考虑将您的命令分成两个“alter table”语句,4) 请注意您可能需要其他语句(例如删除约束),或者您甚至可能必须删除并重新创建整个表
-
@NealR:你没有回答。您使用什么 RDBMS? SQL-Server、MySQL、Oracle、Postgres、DB2,还有一个?
-
我怀疑它是 SQL-Server,所以在这里看看如何找到 PK 约束名称:Dropping a Primary Key Constraint in SQL Server – is it easy? May be. May be not!
标签: sql sql-server primary-key composite-primary-key