如何在临时表中存储表行

时间:2015-03-08 15:35:24

标签: sql-server-2012 identity temp-tables

我有一张包含约600000条记录的表格。我想重新设置此表的标识列。这是我的计划:

  1. 将此表的内容存储在临时表
  2. 删除此表中的所有记录
  3. Reseed identity
  4. 将该临时表中的记录插入此
  5. 那么如何将此表存储到临时表中呢?

1 个答案:

答案 0 :(得分:1)

如果场景背后没有其他任何内容,请尝试以下方法:

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