| title | Delete Primary Keys | |||
|---|---|---|---|---|
| description | Learn more about how to delete the primary key from a table in the SQL Server Database Engine. | |||
| author | WilliamDAssafMSFT | |||
| ms.author | wiassaf | |||
| ms.reviewer | randolphwest | |||
| ms.date | 01/23/2025 | |||
| ms.service | sql | |||
| ms.subservice | table-view-index | |||
| ms.topic | how-to | |||
| ms.custom |
|
|||
| helpviewer_keywords |
|
|||
| monikerRange | =azuresqldb-current || >=sql-server-2016 || >=sql-server-linux-2017 || =azuresqldb-mi-current || =fabric-sqldb |
[!INCLUDE sqlserver2016-asdb-asdbmi-fabricsqldb]
You can delete (drop) a primary key in [!INCLUDE ssnoversion] by using [!INCLUDE ssManStudioFull] or [!INCLUDE tsql].
When the primary key is deleted, the corresponding index is deleted. This index might be the clustered index of the table, causing the table to become a heap. For more information, see Heaps (tables without clustered indexes). Most tables should have a clustered index. To re-create the primary key, see Create primary keys.
Primary keys can be referenced by foreign keys in another table. If referenced by a foreign key, you need to drop referencing foreign keys first, then drop the primary key. For more information, see Primary and foreign key constraints.
Requires ALTER permission on the table.
-
In Object Explorer, expand the table that contains the primary key and then expand Keys.
-
Right-click the key and select Delete.
-
In the Delete Object dialog box, verify the correct key is specified and select OK.
-
In Object Explorer, right-click the table with the primary key, and select Design.
-
In the table grid, right-click the row with the primary key and choose Remove Primary Key to toggle the setting from on to off.
[!NOTE]
To undo this action, close the table without saving the changes. Deleting a primary key can't be undone without losing all other changes made to the table. -
On the File menu, select Save table name.
-
In Object Explorer, connect to an instance of [!INCLUDE ssDE].
-
On the Standard bar, select New Query.
-
Copy and paste the following example into the query window and select Execute.
-
You must first identify the name of the primary key constraint.
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
-
To create the
DROPscript, use the result from the previous query. Replace<primary-key-constraint>with the correct value. It might look similar toPK_TransactionHistoryArchive_TransactionID.ALTER TABLE Production.TransactionHistoryArchive DROP CONSTRAINT <primary-key-constraint>; GO
-