Code icon

MySQL - TRIGGERS LOGS

Links


    // TRIGGERS Logs
    create table logNotas
    (
    id int identity primary key,
    fechaHora datetime default ( getdate()),
    usuarioBD varchar(100) default (suser_name()) ,
    texto varchar(1000)

    )
    go
    //--drop trigger trInsGrabalog
    create trigger trINSGrabaLog on nota for insert
    as
    declare @idAlumno int
    declare @idAsignatura int
    declare @nota int
    declare @texto varchar(1000)

    set @idAlumno=(select idAlumno from inserted) 
    set @idAsignatura=(select idAsignatura from inserted)
    set @nota =(select Nota from inserted)

    set @texto='Inserta al alumno '+CAST(@idAlumno as varchar(8))+' la nota '+CAST(@nota as varchar(2)) +
                ' en la asignatura '+CAST(@idAsignatura as varchar(10)) 


    insert into logNotas (texto) values (@texto) -- INSERTO ESTA NOTA A ESTE ALUMNO EN LA ASIGNATURA ...
    go
    //--drop trigger trModGrabaLog
    create trigger trMODGrabaLog on nota for update
    as
    declare @a1 varchar(3) 
    declare @a2 varchar(3)
    declare @a3 varchar(3)

    set @a1=''
    set @a2=''
    set @a3=''

    declare @idAlumno int
    declare @idAsignatura int
    declare @nota int
    declare @texto varchar(1000)

    set @idAlumno=(select idAlumno from deleted) -- como estaba antes
    set @idAsignatura=(select idAsignatura from deleted)
    set @nota =(select Nota from deleted)

    declare @textoOld varchar(300)
    set @textoOld = 'Antes =('+CAST(@idAlumno as varchar(7))+','+cast(@idAsignatura as varchar(5))+','
                    +CAST(@nota as varchar(2))+')'

    if ( UPDATE (idAlumno) ) set @a1='(*)'
    if ( UPDATE (idAsignatura) ) set @a2='(*)'
    if ( UPDATE (nota) ) set @a3='(*)'

    set @idAlumno=(select idAlumno from inserted) -- como queda
    set @idAsignatura=(select idAsignatura from inserted)
    set @nota =(select Nota from inserted)

    declare @textoNew varchar(300)
    set @textoNew ='Ahora ('+CAST(@idAlumno as varchar(7))+' '+@a1+','+cast(@idAsignatura as varchar(5))
                    +' '+@a2+','
                    +CAST(@nota as varchar(2))+' '+@a3+')'
    set @texto=@textoOld+' '+@textoNew
    insert into logNotas (texto) values (@texto) -- MODIFICO LA NOTA DEL ALUMNO ... EN LA ASIGNATRUA ... Y PUSO DE NOTA ...
    go

    create trigger trDELGrabaLog on nota for delete -- BORRO LA NOTA DEL ALUMNO... EN LA ASIGNTURA ...
    as
    declare @idAlumno int
    declare @idAsignatura int
    declare @nota int
    declare @texto varchar(1000)

    set @idAlumno=(select idAlumno from deleted) 
    set @idAsignatura=(select idAsignatura from deleted)
    set @nota =(select Nota from deleted)

    set @texto='BORRO al alumno '+CAST(@idAlumno as varchar(8))+' la nota '+CAST(@nota as varchar(2)) +
                ' en la asignatura '+CAST(@idAsignatura as varchar(10)) 
    go
    create table logNotas
    (
    id int identity primary key,
    fechaHora datetime default ( getdate()),
    usuarioBD varchar(100) default (suser_name()) ,
    texto varchar(1000)

    )
    go
    --drop trigger trInsGrabalog
    create trigger trINSGrabaLog on nota for insert
    as
    declare @idAlumno int
    declare @idAsignatura int
    declare @nota int
    declare @texto varchar(1000)

    set @idAlumno=(select idAlumno from inserted) 
    set @idAsignatura=(select idAsignatura from inserted)
    set @nota =(select Nota from inserted)

    set @texto='Inserta al alumno '+CAST(@idAlumno as varchar(8))+' la nota '+CAST(@nota as varchar(2)) +
                ' en la asignatura '+CAST(@idAsignatura as varchar(10)) 


    insert into logNotas (texto) values (@texto) -- INSERTO ESTA NOTA A ESTE ALUMNO EN LA ASIGNATURA ...
    go
    --drop trigger trModGrabaLog
    create trigger trMODGrabaLog on nota for update
    as
    declare @a1 varchar(3) 
    declare @a2 varchar(3)
    declare @a3 varchar(3)

    set @a1=''
    set @a2=''
    set @a3=''

    declare @idAlumno int
    declare @idAsignatura int
    declare @nota int
    declare @texto varchar(1000)

    set @idAlumno=(select idAlumno from deleted) -- como estaba antes
    set @idAsignatura=(select idAsignatura from deleted)
    set @nota =(select Nota from deleted)

    declare @textoOld varchar(300)
    set @textoOld = 'Antes =('+CAST(@idAlumno as varchar(7))+','+cast(@idAsignatura as varchar(5))+','
                    +CAST(@nota as varchar(2))+')'

    if ( UPDATE (idAlumno) ) set @a1='(*)'
    if ( UPDATE (idAsignatura) ) set @a2='(*)'
    if ( UPDATE (nota) ) set @a3='(*)'

    set @idAlumno=(select idAlumno from inserted) -- como queda
    set @idAsignatura=(select idAsignatura from inserted)
    set @nota =(select Nota from inserted)

    declare @textoNew varchar(300)
    set @textoNew ='Ahora ('+CAST(@idAlumno as varchar(7))+' '+@a1+','+cast(@idAsignatura as varchar(5))
                    +' '+@a2+','
                    +CAST(@nota as varchar(2))+' '+@a3+')'
    set @texto=@textoOld+' '+@textoNew
    insert into logNotas (texto) values (@texto) -- MODIFICO LA NOTA DEL ALUMNO ... EN LA ASIGNATRUA ... Y PUSO DE NOTA ...
    go

    create or alter  trigger trDELGrabaLog on nota for delete -- BORRO LA NOTA DEL ALUMNO... EN LA ASIGNTURA ...
    as
    declare @idAlumno int
    declare @idAsignatura int
    declare @nota int
    declare @texto varchar(1000)

    set @idAlumno=(select idAlumno from deleted) 
    set @idAsignatura=(select idAsignatura from deleted)
    set @nota =(select Nota from deleted)

    set @texto='BORRO al alumno '+CAST(@idAlumno as varchar(8))+' la nota '+CAST(@nota as varchar(2)) +
                ' en la asignatura '+CAST(@idAsignatura as varchar(10)) 

    insert into logNotas (texto) values (@texto) 
    go