none
Problema con trigger Sql server RRS feed

  • Pregunta

  • Que tal, tengo SQL Server 2016 sobre Windows server 2012 R2, yo cree un trigger sobre una tabla despues tube que eliminar este trigger, porque ya no lo necesitaba, mi problema consiste en que este trigger me vuelve a aparecer nuevamente (se vuelve a crear sin interaccion), es esto posible? que puede causar que se revierta esto en la base de datos?

    Este es el trigger, que lo elimino y se vuelve a crear dias despues nuevamente:

    ALTER TRIGGER [dbo].[trg_ActCliente_transacciones] ON [dbo].[transacciones]

    INSTEAD OF UPDATE
    AS
    DECLARE @ID NUMERIC(18,0),@CDET INT
    BEGIN
        SET NOCOUNT ON;
        IF UPDATE(PROYECTO)
        BEGIN
            SELECT TOP 1 @ID=ID FROM INSERTED
            SELECT @CDET=COUNT(*) FROM transacciones_det WHERE ID=@ID
        END
        IF @CDET != 0
        BEGIN
            RAISERROR('No puede modificar el codigo.',16,1);
            --ROLLBACK TRANSACTION
        END
    END


    • Editado Ericx7 viernes, 16 de febrero de 2018 18:08
    viernes, 16 de febrero de 2018 18:08

Respuestas

  • Hola Erik:

    En prinicipio parece imposible. ¿Porque no cambias las preguntas y el enfoque?

    Como has eliminado el trigger, y como te has asegurado de que lo has eliminado???

    No parece más posible, que tu eliminacion no haya sido simplemente efectiva, y no hayas visto la respuesta del método de eliminación.

    Has utilizado una sentencia, o el manager....

    No dispones de más bases de datos, en ese servidor, y lo has ejecutado contra otra base de datos???

    Un saludo

    viernes, 16 de febrero de 2018 19:22
  • Se me ocurre un caso en el que puede ocurrir que al eliminar el trigger vuelva a aparecer. Esto puede suceder si tienes un trigger de DDL que se dispare con la eliminación del trigger DML, y dentro del Trigger DDL se hace un Rollback. Si es así, deshabilita momentáneamente el trigger de DDL mientras borras el de DML.
    viernes, 16 de febrero de 2018 21:09

Todas las respuestas

  • Hola Erik:

    En prinicipio parece imposible. ¿Porque no cambias las preguntas y el enfoque?

    Como has eliminado el trigger, y como te has asegurado de que lo has eliminado???

    No parece más posible, que tu eliminacion no haya sido simplemente efectiva, y no hayas visto la respuesta del método de eliminación.

    Has utilizado una sentencia, o el manager....

    No dispones de más bases de datos, en ese servidor, y lo has ejecutado contra otra base de datos???

    Un saludo

    viernes, 16 de febrero de 2018 19:22
  • Hola. Tal como como planteó Javi Fernandez, realmente no has eliminado el trigger ya sea porque no se ejecutó la sentencia de DROP o surgió un error durante el borrado del mismo. Deberías chequear si el resultado fue satisfactorio al borrarlo y no hubo ningún mensaje.

    Saludos.


    Mariano K.

    viernes, 16 de febrero de 2018 19:58
  • Se me ocurre un caso en el que puede ocurrir que al eliminar el trigger vuelva a aparecer. Esto puede suceder si tienes un trigger de DDL que se dispare con la eliminación del trigger DML, y dentro del Trigger DDL se hace un Rollback. Si es así, deshabilita momentáneamente el trigger de DDL mientras borras el de DML.
    viernes, 16 de febrero de 2018 21:09
  • Gracias por sus respuestas, ya he encontrado el problema, sucede que un compañero que ha estado trabajando en la base de datos, ha estado ejecutando un script, el cual contiene la creacion del trigger, y aunque le habia consultado por los cambios que ha realizado, me habia dicho que ninguno que afectara a la base de datos, al parecer ni lo sabia. Gracias por su ayuda.



    • Editado Ericx7 sábado, 17 de febrero de 2018 4:32
    sábado, 17 de febrero de 2018 4:25