Principales respuestas
Problema con trigger Sql server

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
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
- Propuesto como respuesta Pablo RubioModerator viernes, 16 de febrero de 2018 21:59
- Marcado como respuesta Pablo RubioModerator martes, 20 de febrero de 2018 16:29
-
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.
- Propuesto como respuesta Pablo RubioModerator viernes, 16 de febrero de 2018 21:59
- Marcado como respuesta Pablo RubioModerator martes, 20 de febrero de 2018 16:29
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
- Propuesto como respuesta Pablo RubioModerator viernes, 16 de febrero de 2018 21:59
- Marcado como respuesta Pablo RubioModerator martes, 20 de febrero de 2018 16:29
-
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.
-
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.
- Propuesto como respuesta Pablo RubioModerator viernes, 16 de febrero de 2018 21:59
- Marcado como respuesta Pablo RubioModerator martes, 20 de febrero de 2018 16:29
-
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