Hola, uso sql 2012, debo crear este trigger:
Al agregar una transacción por cuenta, si es retiro (se debe verificar) que el valor de la transacción no exceda al saldo de la cuenta) o consignación se disminuya o incremente el saldo de la cuenta , respectivamente, en ese valor. Se debe verificar la existencia del numero de la cuenta y el código de la transacción.
Create trigger agregar_transaccion on dbo.TransacCuenta
After insert
As
DECLARE @valor_transaccion int,
DECLARE @saldo_cuenta int
SET @valor_transaccion = (SELECT Valor FROM inserted)
SET @saldo_cuenta = (SELECT Saldo FROM dbo.CuentaXCliente)
SET @numero_cuenta = (SELECT NroCuenta FROM inserted)
--Validar que la cuenta exista
If exists (select NroCuenta from dbo.CuentaXCliente where NroCuenta = @numero_cuenta
Begin
--- 02 retiro
If @tipo = 02
Begin
If @valor_transaccion <= @saldo_cuenta
Begin
update dbo.CuentaXCliente set Saldo = Saldo - @valor_transaccion where NroCuenta = @numero_cuenta
End
Else
Print ?El valor de la transacción no puede ser mayor que el saldo de la cuenta?
End
--01 consignación
If @tipo = 01
Begin
update dbo.CuentaXCliente set Saldo = Saldo + @valor_transaccion where NroCuenta = @numero_cuenta
End
end
Else
Print ?Esa cuenta no existe?
Me salen muchos errores:
Mens 156, Nivel 15, Estado 1, Procedimiento agregar_transaccion, Línea 6
Sintaxis incorrecta cerca de la palabra clave 'DECLARE'.
Mens 137, Nivel 15, Estado 1, Procedimiento agregar_transaccion, Línea 8
Debe declarar la variable escalar "@valor_transaccion".
Mens 137, Nivel 15, Estado 1, Procedimiento agregar_transaccion, Línea 10
Debe declarar la variable escalar "@numero_cuenta".
Mens 137, Nivel 15, Estado 2, Procedimiento agregar_transaccion, Línea 13
Debe declarar la variable escalar "@numero_cuenta".
Mens 137, Nivel 15, Estado 2, Procedimiento agregar_transaccion, Línea 17
Debe declarar la variable escalar "@tipo".
Mens 137, Nivel 15, Estado 2, Procedimiento agregar_transaccion, Línea 19
Debe declarar la variable escalar "@valor_transaccion".
Mens 137, Nivel 15, Estado 2, Procedimiento agregar_transaccion, Línea 22
Debe declarar la variable escalar "@valor_transaccion".
Mens 137, Nivel 15, Estado 2, Procedimiento agregar_transaccion, Línea 29
Debe declarar la variable escalar "@tipo".
Mens 137, Nivel 15, Estado 2, Procedimiento agregar_transaccion, Línea 31
Debe declarar la variable escalar "@valor_transaccion".
(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)