删除主键
适用于:SQL Server 2016 (13.x) 及更高版本 Azure SQL 数据库 Azure SQL 托管实例
可以使用 SQL Server Management Studio 或 Transact-SQL 在 SQL Server 中删除主键。
在删除主键时,也将删除相应的索引。 这可能是表的聚集索引,导致表成为堆。 有关详细信息,请参阅堆(没有聚集索引的表)。 大多数表都应具有聚集索引。 若要重新创建主键,请参阅创建主键。
主键可由另一个表中的外键引用。 如果由外键引用,则需要先删除引用外键,然后删除主键。 有关详细信息,请参阅 Primary and Foreign Key Constraints。
权限
需要对表的 ALTER 权限。
使用 SQL Server Management Studio
使用对象资源管理器删除主键约束
在对象资源管理器中,展开包含主键的表,再展开 “键”。
右键单击该键,然后选择“删除”。
在“删除对象”对话框中,确认指定了正确的键,然后选择“确定” 。
使用表设计器删除主键约束
在对象资源管理器中,右键单击具有主键的表,再选择“设计”。
在表网格中右键单击包含主键的行,再选择“删除主键”以将该设置从启用切换到禁用。
注意
若要撤消此操作,请关闭该表而不保存更改。 若要撤消删除主键操作,就无法避免丢失对表做出的所有其他更改。
在“文件”菜单上,选择“保存表名”。
使用 Transact-SQL
删除主键约束
在 “对象资源管理器” 中,连接到 数据库引擎的实例。
在标准栏上,选择“新建查询” 。
将以下示例复制并粘贴到查询窗口中,然后选择“执行”。 该示例首先标识主键约束的名称,然后删除该约束。
USE AdventureWorks2022; GO -- Return the name of primary key. SELECT name FROM sys.key_constraints WHERE type = 'PK' AND OBJECT_NAME(parent_object_id) = N'TransactionHistoryArchive'; GO -- Delete the primary key constraint. ALTER TABLE Production.TransactionHistoryArchive DROP CONSTRAINT PK_TransactionHistoryArchive_TransactionID; GO