Как сохранить выбранное значение поля в переменной из запроса и использовать его в инструкции обновления?
Вот моя процедура:
Я пишу хранимую процедуру 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 следующего оператора обновления? Создать переменную курсора или другую локальную переменную с типом типа?