临时表foreach更新

时间:2015-05-04 09:56:20

标签: sql-server stored-procedures foreach temp-tables

我正在尝试遍历生成的temp table的所有记录以更新密钥。该表以多个步骤组合,索引只能在表完成时分配。

当我想循环遍历临时表时,临时表有no index,因此使用语句UPDATE tablename WHERE index = value是无用的

我有办法循环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,如果显示我该怎么做?

1 个答案:

答案 0 :(得分:0)

您可以使用http://www.dependencywalker.com/循环查询结果。以下是如何在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