将主键约束切换到新列

时间:2018-01-01 17:54:44

标签: sql sql-server tsql primary-key

我想将主键从我现有的标识列中移开 到另一列。

这是我的表:

CREATE TABLE dbo.ParkingLot
(
  ID      int IDENTITY(1,1) PRIMARY KEY,
  Address ???,
  Status  ???, 
  newID   ???
); 

我想删除ID列上的主键,而是将newID作为主键(这是一个新列,但它已经填充了值)。

1 个答案:

答案 0 :(得分:2)

删除主键约束并重新添加新约束

您必须删除主键约束并添加新约束

删除主键约束

-- Return the name of primary key.  
SELECT name  
FROM sys.key_constraints  
WHERE type = 'PK' AND OBJECT_NAME(parent_object_id) = 
N'Tablename';  
GO  
-- Delete the primary key constraint.  
ALTER TABLE Production.Tablename
DROP CONSTRAINT PK_Tablename;  
GO

添加新的主键约束

ALTER TABLE Tablename ADD CONSTRAINT pk_NewPrimary PRIMARY KEY (Newid)

<强>参考