【发布时间】:2014-01-11 20:51:10
【问题描述】:
是否可以在 SQL Server 表上设置主键和自动增量,而无需删除和重新创建表并丢失所有数据?
【问题讨论】:
-
知道怎么做吗?任何指针将不胜感激谢谢
标签: sql sql-server
是否可以在 SQL Server 表上设置主键和自动增量,而无需删除和重新创建表并丢失所有数据?
【问题讨论】:
标签: sql sql-server
当然可以!您只需添加一个新列,它是一个 INT IDENTITY 并为其添加一个主键约束:
ALTER TABLE dbo.YourTable
ADD ID INT IDENTITY(1,1) NOT NULL
ALTER TABLE dbo.YourTable
ADD CONSTRAINT PK_YourTable PRIMARY KEY (ID)
【讨论】:
如果已有主键,则必须先删除它:
IF EXISTS (SELECT * FROM sys.key_constraints
WHERE type = 'PK' AND parent_object_id = OBJECT_ID('MyTable')
AND Name = 'PK_MyTable')
ALTER TABLE MyTable DROP CONSTRAINT PK_MyTable
如果您要添加一个用作主键的列,那么您可以简单地添加它:
ALTER TABLE MyTable ADD MyKey INT IDENTITY
然后,您可以将此列设置为表的主键:
ALTER TABLE MyTable ADD CONSTRAINT PK_MyTable PRIMARY KEY(MyKey)
【讨论】: