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
CREATE TRIGGER BorraEntrada ON Entradas FOR DELETE AS BEGIN DECLARE @cod INT DECLARE @mes CHAR(6) DECLARE @EU NUMERIC(10, 2) DECLARE @EV NUMERIC(10, 3) SELECT @cod = codigo, @mes = SUBSTRING(fecha2, 1, 6), @EU = cantidad, @EV = total FROM Deleted UPDATE SaldosI SET entradaV = entradaV - @EV, entradaC = entradaC - @EU WHERE codigo = @cod AND mes = @mes DECLARE @cant NVARCHAR(10) SET @cant = N'SELECT entradaC FROM SaldosI WHERE codigo = @cod AND mes = @mes' EXEC sp_executesql @cant, N'@cod INT, @mes CHAR(6)', @cod, @mes IF (@cant = '0.00') DELETE FROM SaldosI WHERE codigo = @cod AND mes = @mes END
La parte de:
Código SQL:
[/CODE]Ver original
DECLARE @cant NVARCHAR(10) SET @cant = N'SELECT entradaC FROM SaldosI WHERE codigo = @cod AND mes = @mes' EXEC sp_executesql @cant, N'@cod INT, @mes CHAR(6)', @cod, @mes
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.