Ver Mensaje Individual
  #3  
Antiguo 08-04-2008
Avatar de jcarteagaf
[jcarteagaf] jcarteagaf is offline
Miembro Premium
 
Registrado: abr 2006
Ubicación: La Paz, Bolivia
Posts: 651
Reputación: 19
jcarteagaf Va por buen camino
Ayudando a Josi

Como ya le explicaron en algun post el problema esta en tu Stored Procedure:

Código SQL [-]
create procedure ca
as update inventario set existencia = existencia +cantidad where existencia = existencia
En este caso se actualiza todos los productos ya que siempre Existencia= Existencia
Por otro lado no necesita un stored procedure para eso (aunque puede hacerlo)

Lo mejor seria hacerlo directamente en el Trigger:

Código SQL [-]
 CREATE TRIGGER [TRIGGER inv] ON [dbo].[EQUIPOS] 
after update 
AS
  UPDATE X
  SET X.EXISTENCIA = X.EXISTENCIA +  I.CANTIDAD
  FROM INVENTARIO X
  JOIN INSERTED I ON X.MARCA = I.MARCA
SQL Server crea la tabla Inserted con todos los registros que han sido insertados o actualizados durante las operaciones de inserción y actualización, en el caso de eliminacion de registros crea la tabla deleted.
Los triggers se ejecutan una sola vez por cada proceso es decir si borras 10 registros el trigger se dispara una sola vez, es por eso que se debe recorrer las tablas Inserted y Deleted para poder operar sobre todos los registros afectados por el Trigger.

Espero que sirva.

Saludos.
Responder Con Cita