2015-05-04 81 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