Ver Mensaje Individual
  #1 (permalink)  
Antiguo 23/02/2015, 19:24
LinkServ
 
Fecha de Ingreso: junio-2014
Mensajes: 18
Antigüedad: 9 años, 10 meses
Puntos: 0
Trigger para actualizar saldos

Hola a todos,

He estado trabajando en un trigger por hace un par de horas sin lograr mi objetivo.

Bien, lo que quiero hacer es que al borrar un renglón de una tabla llamada Entradas se actualicen los saldos de la tabla SaldosI automáticamente con un trigger.

Si los saldos alcanzan el valor menor (0.00) se borra el renglón de la tabla SaldosI

El código de mi trigger es el siguiente:
Código SQL:
Ver original
  1. CREATE TRIGGER BorraEntrada ON Entradas FOR DELETE
  2. AS
  3. BEGIN
  4.     DECLARE @cod INT
  5.     DECLARE @mes CHAR(6)
  6.     DECLARE @EU NUMERIC(10, 2)
  7.     DECLARE @EV NUMERIC(10, 3)
  8.  
  9.     SELECT @cod = codigo, @mes = SUBSTRING(fecha2, 1, 6), @EU = cantidad, @EV = total FROM Deleted
  10.  
  11.     UPDATE SaldosI SET entradaV = entradaV - @EV, entradaC = entradaC - @EU WHERE codigo = @cod AND mes = @mes
  12.  
  13.     DECLARE @cant NVARCHAR(10)
  14.     SET @cant = N'SELECT entradaC FROM SaldosI WHERE codigo = @cod AND mes = @mes'
  15.     EXEC sp_executesql @cant, N'@cod INT, @mes CHAR(6)', @cod, @mes
  16.  
  17.  
  18.     IF (@cant = '0.00')
  19.         DELETE FROM SaldosI WHERE codigo = @cod AND mes = @mes
  20. END

La parte de:
Código SQL:
Ver original
  1. DECLARE @cant NVARCHAR(10)
  2.     SET @cant = N'SELECT entradaC FROM SaldosI WHERE codigo = @cod AND mes = @mes'
  3.     EXEC sp_executesql @cant, N'@cod INT, @mes CHAR(6)', @cod, @mes
[/CODE]

No se si está bien, lo hice basándome en unos ejemplos que encontré y es justo esa parte la que quiero saber cómo sería en dado caso que esté yo mal.

Última edición por gnzsoloyo; 24/02/2015 a las 08:28 Razón: Código muy mal etiquetado. Usar Highlight "SQL".