Trigger al generar un nueva cuenta en un banco


24 de Marzo del 2017

Hola, uso sql 2012 y tengo esta tarea:

1.       al generar una cuenta (nueva), se genere una transacción (con todos sus datos) con el valor del saldo de la cuenta*/

 

Create trigger nueva_cuenta  on dbo.CuentaCliente

After insert

As

DECLARE @numero_cuenta nvarchar(15)

 

SET @numero_cuenta = (SELECT NroCuenta FROM inserted)

 

 

Begin

                Insert into dbo.TransacCuenta (@numero_cuenta, CodigoT, Fecha, Hora, Valor) values (dbo.CuentaCliente.NroCuenta, 01, 2017-10-31 17:39:41.000, 2017-10-31 17:39:41.000, 10000)

End

Me sale este error:

Mens 102, Nivel 15, Estado 1, Procedimiento nueva_cuenta, Línea 10
Sintaxis incorrecta cerca de 'CodigoT'.

 

Estas son las tablas con algo de info

Cliente > DocIdent

Cliente Consulta > DocIdent,

CuentaXCliente > NroCuenta, DocIdent, Saldo

TipoTransacción > CodigoT, Descripcion

TransacCuenta > NroCuenta, CodigoT, Valor, Fecha

 

Me pueden ayudar? Se los agradecería.

 



18 de Marzo del 2021

Dentro de la instruccion INSERT tienes esto:

Insert into dbo.TransacCuenta (@numero_cuenta, CodigoT, Fecha, Hora, Valor)

NO PUEDES, colocar una variable @numero_cuenta, como nombre de campo, ¿de donde sale esa variable?



18 de Marzo del 2021

En todo caso deberia ser asi:

 

Insert into dbo.TransacCuenta (CuentaCliente.NroCuenta , CodigoT, Fecha, Hora, Valor)

values (@numero_cuenta, 01, 2017-10-31 17:39:41.000, 2017-10-31 17:39:41.000, 10000)

Segun esto, el campo CuentaCliente.NroCuenta, sale de una tabla CuentaCliente, ¿que rol juega esa tabla en tu trigger?

Por ultimo, los TRIGGERS no fueron creados para codificar la logica del negocio, este insert deberia hacerlo un procedimiento almacenado