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.
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?
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