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”。
使用 DBCC 命令“CHECKIDENT”可以重置表中列的标识值。
例如,“标识”列的最后一个标识为 100。如果我们希望下一行的标识为 201,那么您可以使用以下 DBCC 命令来实现 -
DBCC CHECKIDENT (N'TableName', RESEED, 34);
Run Code Online (Sandbox Code Playgroud)
如果标识列在下一次插入时必须以标识 1 开始,则应将标识重新设置为 0。
但请记住,这样做可能会违反数据完整性、表记录的唯一性。