如何在临时 table 中存储 table 行

How to store table rows in a temp table

我有一个 table 大约有 600000 条记录。我想重新播种此 table 的身份列。这是我的计划:

  1. 将此 table 的内容存储在临时 table
  2. 删除此table中的所有记录
  3. 重新植入身份
  4. 将来自那个临时 table 的记录插入到这个

那么如何将这个 table 存储到临时文件中?

如果幕后没有别的东西,那么试试这个:

SET IDENTITY_INSERT TABLE_NAME ON
GO

UPDATE  CTE
SET     ID = RN
FROM
(
    SELECT  ID, ROW_NUMBER() OVER(ORDER BY ID) AS RN
    FROM    TABLE_NAME
) AS CTE

SET IDENTITY_INSERT TABLE_NAME OFF
GO

DBCC CHECKIDENT('TABLE_NAME', RESEED, 600001)
GO