如何在 SQL Server 中添加标识列?

Posted

技术标签:

【中文标题】如何在 SQL Server 中添加标识列?【英文标题】:How to add Identity Column in SQL server? 【发布时间】:2018-01-08 06:01:08 【问题描述】:

这是我的表,ID 是唯一约束...现在我想在 ID 中添加标识列。谁能帮我用 TSQL 来做。 这是现有表。

【问题讨论】:

重复How To Create Table with Identity Column 如果您想为现有列添加标识,我认为这是不可能的。您要么创建一个具有标识的新表,要么向现有表添加一个具有标识的新列 @BrienFoss 它与您提到的不重复。我认为他想将现有列更改为 IDENTITY 列。 删除 ID 列并使用同名 ID.. 使用 not null 约束和 identity(1,1) 属性重新创建 @Awesome 我不主张删除所有列。只需删除列的 ID 并添加相同的列,如 alter table <name> add id int not null identity(1,1) 简单没有逻辑。 【参考方案1】:

每个表只能有 1 个标识列。因此,如果您还没有,只需更改表格并添加列。像这样

ALTER TABLE YourTableName
ADD IdCol INT IDENTITY(1,1)

【讨论】:

【参考方案2】:

如果您的应用程序中需要这些值,您可以重命名之前的 ID 列以保留这些值

EXEC sp_rename 'TableName.id', 'oldid', 'COLUMN';

然后添加具有唯一约束的新 ID 列,如下所示

Alter table TableName Add id int identity(1,1) unique not null

【讨论】:

以上是关于如何在 SQL Server 中添加标识列?的主要内容,如果未能解决你的问题,请参考以下文章

sql server 2000 列添加identity标识 出现错误时,弹出警告,清除警告后再次输入数据,标识会丢失一个

如何控制 SQL Server 中新标识列的分配顺序?

如何在 SQL Server 中重新设置标识列?

还原后的 SQL Server 2012 标识列

使用sql语句创建修改SQL Server标识列(即自动增长列)

SQL Server中的标识列