2014-11-21 80 views
0

我有列id, items表:如何在SQL Server中使用變量來設置標識種子值

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. 

但該查詢會導致錯誤。有沒有其他方法?我可以循環表格並插入,但我只想知道是否有任何簡單的方法。請整理一下。

+0

您可以嘗試使用'ROW_NUMBER()',但你至少需要一列可以排序。如果該列有重複項,那麼您將需要額外的列進行排序 – Raj 2014-11-21 05:58:32

回答

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 
相關問題