--Opción 1: Sentencia SQL
update productos
set precio1= precio1 / :Tasa_Old * :Tasa_New,
precio2= precio2 / :Tasa_Old * :Tasa_New,
precio3= precio3 / :Tasa_Old * :Tasa_New,
precio4= precio4 / :Tasa_Old * :Tasa_New,
precio5= precio5 / :Tasa_Old * :Tasa_New,
precio6= precio6 / :Tasa_Old * :Tasa_New;
--Opción 2: Sentencia SQL con filtro
update productos
set precio1= precio1 / :Tasa_Old * :Tasa_New,
precio2= precio2 / :Tasa_Old * :Tasa_New,
precio3= precio3 / :Tasa_Old * :Tasa_New,
precio4= precio4 / :Tasa_Old * :Tasa_New,
precio5= precio5 / :Tasa_Old * :Tasa_New,
precio6= precio6 / :Tasa_Old * :Tasa_New
where id_linea=:linea;
--Opción 3: Procedimiento almacenado con parámetros
create or alter procedure spUpdatePrecios ( Linea smallint,
Tasa_Old numeric(6,2),
Tasa_New numeric(6,2) )
as
begin
if (Linea is null) then
update productos
set precio1= precio1 / :Tasa_Old * :Tasa_New,
precio2= precio2 / :Tasa_Old * :Tasa_New,
precio3= precio3 / :Tasa_Old * :Tasa_New,
precio4= precio4 / :Tasa_Old * :Tasa_New,
precio5= precio5 / :Tasa_Old * :Tasa_New,
precio6= precio6 / :Tasa_Old * :Tasa_New,
else
--Update restringido de acuerdo a Linea=?
update productos
set precio1= precio1 / :Tasa_Old * :Tasa_New,
precio2= precio2 / :Tasa_Old * :Tasa_New,
precio3= precio3 / :Tasa_Old * :Tasa_New,
precio4= precio4 / :Tasa_Old * :Tasa_New,
precio5= precio5 / :Tasa_Old * :Tasa_New,
precio6= precio6 / :Tasa_Old * :Tasa_New
where id_linea=:linea;
end