¿Cuál es la diferencia entre los disparadores FOR
y AFTER
?
sql
sql-server-2005
triggers
sqlchild
fuente
fuente
Respuestas:
No hay diferencia, hacen lo mismo.
Es lo mismo que
Un
INSTEAD OF
disparador es diferente y se dispara antes y en lugar de la inserción y se puede utilizar en las vistas para insertar los valores adecuados en las tablas subyacentes.fuente
@Ben tiene toda la razón.
Aquí está el artículo de MSDN Exploring SQL Server Triggers
Un párrafo del artículo:
fuente
AFTER especifica que el desencadenante DML se activa solo cuando todas las operaciones especificadas en la instrucción SQL desencadenante se han ejecutado correctamente. Todas las acciones en cascada referenciales y las comprobaciones de restricciones también deben tener éxito antes de que se active este disparador. AFTER es el valor predeterminado cuando FOR es la única palabra clave especificada.
DESPUÉS de que los activadores no se pueden definir en las vistas.
INSTEAD OF Especifica que el desencadenante DML se ejecuta en lugar de la sentencia SQL desencadenante, por lo tanto, anula las acciones de las sentencias desencadenantes. INSTEAD OF no se puede especificar para DDL o activadores de inicio de sesión.
https://docs.microsoft.com/en-us/sql/t-sql/statements/create-trigger-transact-sql
fuente