trigers y stored
Publicado por leo (1 intervención) el 12/12/2005 05:01:21
buenas noches:
tengo un trigger que llama a un stored procedure luego de insertar los valores de la tabla movimientos luego de la insercion debo actualizar el stock en la tabla articulos de acuerdo a la tabla movimientos solo me actualiza uno de los articulos y no todos¡alguien sabe que peude ser,
pongo el codigo utilizado
CREATE TRIGGER t_movim ON movimiento FOR INSERT AS
declare @codigo_arti nvarchar(30)
declare @tipo char(1)
declare @cant_mod numeric(6)
drop trigger t_movim
declare c_movim cursor for select m.codigo_arti,m.tipo,m.cant_mod from
inserted as m
open c_movim
fetch next from c_movim
into @codigo_arti,@tipo,@cant_mod
while @@fetch_status=0
begin
exec p_mod @codigo_arti,@tipo,@cant_mod
fetch next from c_movim
into @cant_mod,@codigo_arti,@tipo
end
close c_movim
deallocate c_movim
Create Procedure p_mod
@codigo_arti nvarchar(30),
@tipo char(1),
@cant_mod numeric(6)
as
Begin
if @tipo='A'
begin
update articulos set cantidad=cantidad+ @cant_mod
where codigo_arti= @codigo_arti
end
if @tipo='B'
begin
update articulos set cantidad=cantidad - @cant_mod
where codigo_arti= @codigo_arti
end
End
go
desde ya muchas gracias
saludos
tengo un trigger que llama a un stored procedure luego de insertar los valores de la tabla movimientos luego de la insercion debo actualizar el stock en la tabla articulos de acuerdo a la tabla movimientos solo me actualiza uno de los articulos y no todos¡alguien sabe que peude ser,
pongo el codigo utilizado
CREATE TRIGGER t_movim ON movimiento FOR INSERT AS
declare @codigo_arti nvarchar(30)
declare @tipo char(1)
declare @cant_mod numeric(6)
drop trigger t_movim
declare c_movim cursor for select m.codigo_arti,m.tipo,m.cant_mod from
inserted as m
open c_movim
fetch next from c_movim
into @codigo_arti,@tipo,@cant_mod
while @@fetch_status=0
begin
exec p_mod @codigo_arti,@tipo,@cant_mod
fetch next from c_movim
into @cant_mod,@codigo_arti,@tipo
end
close c_movim
deallocate c_movim
Create Procedure p_mod
@codigo_arti nvarchar(30),
@tipo char(1),
@cant_mod numeric(6)
as
Begin
if @tipo='A'
begin
update articulos set cantidad=cantidad+ @cant_mod
where codigo_arti= @codigo_arti
end
if @tipo='B'
begin
update articulos set cantidad=cantidad - @cant_mod
where codigo_arti= @codigo_arti
end
End
go
desde ya muchas gracias
saludos
Valora esta pregunta


0