none
Validacion Triggers RRS feed

  • Pregunta

  • Cordial saludo,

    Debo hacer una validación en un trigger pero no me funciona, la validación consiste en verificar que no se repita el numero de cuenta.

    Agradezco enormemente su colaboración y les dejo mi código:

    Create Trigger tg_AgregarCuenta On CuentaxCliente
    Instead of Insert
    As
    If Not Exists (Select NroCuenta from CuentaxCliente Where NroCuenta In (Select NroCuenta from inserted))
    Begin
      Declare @NroCuenta Nvarchar(15)
      Set @NroCuenta = (Select max (NroCuenta) from CuentaxCliente)+1
      insert CuentaxCliente (NroCuenta,DocIdent,FechaApertura,Clave,Saldo) values (@NroCuenta,(Select DocIdent from inserted),(Select FechaApertura from inserted),
      (Select Clave from inserted),(Select Saldo from inserted))
      insert TransacCuenta (NroCuenta,CodigoT,Fecha,Hora,Valor) values (@NroCuenta,'01',GETDATE(),GETDATE(),(select Saldo from inserted))
    End
    Else
     Print 'El Nro de Cuenta ' +@NroCuenta+ ' ya existe'

    miércoles, 27 de mayo de 2015 15:03

Respuestas

  • Hola Norbeyho deberías simplemente validar la cantidad de registros que te emite un select de la tabla CuentaxCliente y evaluar si es mayor a 1, rollback sino insertaría con total normalidad, toma de guia el siguiente ejemplo esta en NORTHWND:

    create trigger Evitar_Duplicados_Descripcion on Categories
    after insert 
    as
    
    declare @CategoryName varchar(50)
    set @CategoryName = (select CategoryName from inserted)
    
    if((select count(*) from Categories where CategoryName = @CategoryName) > 1)
    begin
    print 'La descripcion '+@CategoryName+', ya existe en la tabla categorias'
    rollback
    end
    go
    Espero haberte ayudado.

    miércoles, 27 de mayo de 2015 15:22