删除主键

适用于: 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

使用对象资源管理器删除主键约束

  1. 在对象资源管理器中,展开包含主键的表,再展开 “键”

  2. 右键单击该键,然后选择“删除”

  3. 在“删除对象”对话框中,确认指定了正确的键,然后选择“确定” 。

使用表设计器删除主键约束

  1. 在对象资源管理器中,右键单击具有主键的表,再选择“设计”。

  2. 在表网格中右键单击包含主键的行,再选择“删除主键”以将该设置从启用切换到禁用。

    注意

    若要撤消此操作,请关闭该表而不保存更改。 若要撤消删除主键操作,就无法避免丢失对表做出的所有其他更改。

  3. 在“文件”菜单上,选择“保存”以保存菜单名称。

使用 Transact-SQL

删除主键约束

  1. “对象资源管理器” 中,连接到 数据库引擎的实例。

  2. 在标准栏上,选择“新建查询” 。

  3. 将以下示例复制并粘贴到查询窗口中,然后选择“执行”。 该示例首先标识主键约束的名称,然后删除该约束。

    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  
    

后续步骤