У меня есть хранимая процедура, которая выбирает несколько записей из таблицы. В рамках той же хранимой процедуры я хочу выполнить оператор обновления, ссылающийся на первичный ключ вышеупомянутого выполненного запроса выбора.
В качестве примера
create procedure myproc
as
begin
select col1, col2, col3
from table
update table
set col5 = value
where col1 = <value of col1 from above select query>
end
Я читал о решении использовать подзапрос для получения столбца из последнего запроса, но я ищу лучший способ, если таковой имеется
Изменить для большей ясности
create table emp
(id int, name varchar(30),age int,status bit)
insert into emp values (1,'sam',23,null)
insert into emp values (2,'mike',33,null)
insert into emp values (3,'marc',42,null)
create procedure myproc as
begin
select top 1 id,name from emp where age>30 order by id --it will return row number 2 with id "2"
update emp set status='1' where id =2 -- "2" is the id we got as a result of above select query
end
Я хочу получить результат запроса select, а также выполнить обновление после запроса select