如何在SQL Server中使用变量设置标识种子值

时间:2014-11-21 05:53:21

标签: sql sql-server

我有一个包含id, items列的表格:

 ID    Items
----------------
 1      mc3
 2      mc2
 3      mc1

我想将这些数据插入到临时表中,但是项目的顺序是降序的,即

 ID     Items
--------------
  1     mc1
  2     mc2
  3     mc3

但我不能接受这些项目的订单。 items列具有重复值。我试图使用标识列,但这是一个糟糕的主意。我将展示该查询。

  DECLARE @totalNO INT = 0

  SET @totalNO = (SELECT COUNT(*) FROM @tblmc)

  SELECT IDENTITY(INT, @totalNO, -1) RowIndex1, * 
  INTO #tempmcfordesc 
  FROM @tblmc.

但此查询会导致错误。还有其他方法吗?我可以循环表并插入但我只是想知道有没有任何简单的方法。请解决这个问题。

1 个答案:

答案 0 :(得分:1)

如果你已经创建了临时表,那么使用它:

INSERT INTO #temptable
SELECT Row_Number()
         OVER (
           ORDER BY ID DESC) AS ID,
       Items
FROM   yourtable

如果你还没有创建临时表,那么用这样的数据创建它:

SELECT Row_Number()
         OVER (
           ORDER BY ID DESC) AS ID,
       Items
INTO   #temptable
FROM   yourtable