删除主键

适用于: SQL Server 2016 (13.x) 及更高版本 Azure SQL 数据库 Azure SQL 托管实例

可以使用 SQL Server Management Studio 或 Transact-SQL 在 SQL Server 中删除主键。

在删除主键时,也将删除相应的索引。 这可能是表的聚集索引,导致表成为堆。 有关详细信息,请参阅堆(没有聚集索引的表)。 大多数表都应具有聚集索引。 若要重新创建主键,请参阅创建主键

权限

需要对表的 ALTER 权限。

使用 SQL Server Management Studio

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

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

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

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

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

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

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

    注意

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

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

使用 Transact-SQL

删除主键约束

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

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

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

    USE AdventureWorks2012;  
    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  
    

后续步骤