Как сохранить выбранное значение поля в переменной из запроса и использовать его в инструкции обновления?
Вот моя процедура:
Я пишу хранимую процедуру SQL Server 2005 T-SQL, которая выполняет следующие действия:
- получает список идентификаторов счетов-фактур из таблицы счетов и сохраняет их в Cursor
 - Получить идентификатор счета из курсора → переменная tmp_key
 - foreach tmp_key находит идентификатор первичного контакта клиента счета-фактуры из таблицы клиентов
 - обновляет ключ контакта клиента с идентификатором первичного контакта
 - закрыть курсор
 
Вот мой код:
DECLARE @tmp_key int
DECLARE @get_invckey cursor 
set @get_invckey = CURSOR FOR 
    select invckey from tarinvoice where confirmtocntctkey is null and tranno like '%115876'
OPEN @get_invckey 
FETCH NEXT FROM @get_invckey into @tmp_key
WHILE (@@FETCH_STATUS = 0) 
BEGIN 
    SELECT c.PrimaryCntctKey as PrimaryContactKey
    from tarcustomer c, tarinvoice i
    where i.custkey = c.custkey and i.invckey = @tmp_key
    UPDATE tarinvoice set confirmtocntctkey = PrimaryContactKey where invckey = @tmp_key
    FETCH NEXT FROM @get_invckey INTO @tmp_key
END 
CLOSE @get_invckey
DEALLOCATE @get_invckey
Как сохранить PrimaryContactKey и использовать его снова в предложении set следующего оператора обновления? Создать переменную курсора или другую локальную переменную с типом типа?