将主键约束切换到新列

问题描述 投票:0回答:1

我想将主键从我现有的标识列切换到另一列。

这是我的表:

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

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

sql sql-server tsql primary-key
1个回答
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)

参考

© www.soinside.com 2019 - 2024. All rights reserved.