如何重置 SQL Server 中表的 IDENTITY 列?

Bis*_*swa 3 sql sql-server identity-column

如何重置IDENTITY已填充表中的列?

我尝试过类似的方法,但它不起作用

WITH TBL AS
(
    SELECT 
        *, 
        ROW_NUMBER() OVER(ORDER BY profile_id) AS RN
    FROM 
        Profiles
)
UPDATE TBL
SET profile_id = RN
Run Code Online (Sandbox Code Playgroud)

错误:

无法更新身份列“profile_id”。

在此输入图像描述

Mav*_*hin 8

使用 DBCC 命令“CHECKIDENT”可以重置表中列的标识值。

例如,“标识”列的最后一个标识为 100。如果我们希望下一行的标识为 201,那么您可以使用以下 DBCC 命令来实现 -

DBCC CHECKIDENT (N'TableName', RESEED, 34);
Run Code Online (Sandbox Code Playgroud)

如果标识列在下一次插入时必须以标识 1 开始,则应将标识重新设置为 0。

但请记住,这样做可能会违反数据完整性、表记录的唯一性。

  • 如果我们希望下一个是“201”,为什么要设置“34”? (6认同)