2015-05-04 4 views
0

Я пытаюсь просмотреть все записи сгенерированного temp table, чтобы обновить ключ. Таблица объединяется в несколько этапов, индекс может быть назначен только после завершения таблицы.Temp table foreach update

Проблема заключается в том, что таблица температуры имеет no index, когда я хочу, чтобы цикл через него, так что с помощью оператора UPDATE tablename WHERE index = value бесполезно

Есть ли способ для меня, чтобы петли Повсеместно в temp table и обновить текущую выбранную запись. Идентификатор должен быть incremented для каждой записи

Пример:

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

Loop через каждую запись, чтобы изменить его на:

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

, как вы определяете, какая строка получает какой номер? как вы заполняете эту таблицу Temp? –

ответ

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 Спасибо за ответ, комментарий М.Али решил проблему с использованием ROW_NUMBER с выбором в – PieterSchool