2015-05-04 92 views
0

我試圖循環遍歷生成的temp table的所有記錄來更新密鑰。該表以多個步驟組合,索引只能在表完成時分配。臨時表foreach更新

的問題是,臨時表有no index當我想通過它循環,因此使用語句​​是沒用的

對我來說是有循環throught的temp table的方式和更新當前選擇的記錄。 ID應該是incremented每個記錄

例子:

IDField  Field1  Field2 
0   1   1 
0   2   1 
0   1   2 
0   3   3 

遍歷每個記錄將其改爲:

IDField  Field1  Field2 
1   1   1 
2   2   1 
3   1   2 
4   3   3 

這是可能的without an index,如果節目我應該怎麼辦呢?

+0

你是什麼意思時,你說通過每個記錄循環? SQL Server最適合基於集合的數據處理。還要共享您編寫的代碼,它可以讓用戶更好地瞭解您要實現的目標。 –

+0

@ M.Ali代碼/表格不是問題。但是我現在要爲想法 – PieterSchool

+0

添加一個演示表,您如何定義哪一行被分配了哪些數字?你如何填充這個臨時表開始? –

回答

0

您可以使用Cursor來遍歷查詢結果。下面是一個例子,通過Table_Name如何循環中SELECT Table_Name FROM Information_Schema.Tables

DECLARE @TableName nvarchar(128) 
DECLARE @getTableName CURSOR 
SET @getTableName = CURSOR FOR 
select Information_SCHEMA.tables.Table_name from Information_SCHEMA.tables 
OPEN @getTableName 
FETCH NEXT 
FROM @getTableName INTO @TableName 
WHILE @@FETCH_STATUS = 0 
BEGIN 
    -- Use @TableName the way you need 
    FETCH NEXT 
    FROM @getTableName INTO @TableName 
END 
CLOSE @getTableName 
DEALLOCATE @getTableName 
+0

@Yazabpro感謝您的迴應,M.Ali的評論解決了使用ROW_NUMBER和select – PieterSchool