删除主键
适用于: SQL Server 2016(13.x)及更高版本
Azure SQL 数据库
azure SQL 托管实例
Microsoft Fabric 中的 SQL 数据库
可以使用 SQL Server Management Studio 或 Transact-SQL 在 SQL Server 中删除主键。
在删除主键时,也将删除相应的索引。 此索引可能是表的聚集索引,从而导致表结构变成堆。 有关详细信息,请参阅堆(没有聚集索引的表)。 大多数表都应具有聚集索引。 若要重新创建主键,请参阅 创建主键。
主键可由另一个表中的外键引用。 如果由外键引用,则需要先删除引用外键,然后删除主键。 有关详细信息,请参阅 主键和外键约束。
权限
要求对表具有 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
若要创建
DROP
脚本,请使用上一个查询的结果。 将<primary-key-constraint>
替换为正确的值。 它看起来可能类似于PK_TransactionHistoryArchive_TransactionID
。ALTER TABLE Production.TransactionHistoryArchive DROP CONSTRAINT <primary-key-constraint>; GO