Parece que están permitidos ya que puedo ver mis dos activadores de inserción enumerados debajo de la tabla con diferentes nombres. ¿Es común o una mala práctica? Estoy usando SQL Server 2005¿Puedo tener dos disparadores de inserción diferentes en la misma tabla?
Respuesta
Sí, definitivamente puede tener más de un activador para cada operación, p. AFTER INSERT
o AFTER UPDATE
etc. Tiene sentido dividir preocupaciones separadas en trozos de código separados, pequeños y manejables.
Lo único que no puede confiar es que se ejecutarán en un orden determinado: el orden en el que se ejecutan realmente los desencadenadores tampoco tiene que ser estable, es decir, lo mismo cada vez.
Depende de RDBMS. Postgres garantiza que se llaman múltiples activadores en orden alfabético de nombre. Dicen que el estándar SQL (pocas veces seguido) está en orden de creación. –
@AndrewLazarus: me refería a SQL Server (ya que OP me preguntó al respecto), y SQL Server no tiene esa capacidad. Gracias por señalar eso! –
Absolutamente. A menudo agrego notas como las que dicen que la gente aterriza aquí desde Google mucho. –
es una buena práctica porque luego puede descomponer los cambios con el tiempo en pequeños fragmentos (ágiles) y agregarlos o eliminarlos independientemente el uno del otro.
BTW si inserto 2 o más filas a la vez (básicamente, estoy importando un montón de registros), ¿hay alguna manera de poder hacer referencia a CADA inserto, o el desencadenante se ejecuta automáticamente para cada inserción individual? –
El activador @hmd se ejecutará automáticamente para cada inserción hasta el momento y a menos que esté utilizando inserciones masivas en las que se ejecutará el desencadenante una vez por cada comando de inserción masiva. – Niraj
¡Sé que es una vieja pregunta! En su activador siempre puede hacer referencia a una tabla llamada "insertado" que contiene todas las filas que acaba de insertar (que son una o más filas en un desencadenador de inserción). Y al crear cursores puede recorrer cada una de sus filas y hacer cosas si lo desea. – olf
- 1. unir la misma tabla dos veces en diferentes columnas
- 2. ¿Asignar dos entidades diferentes a la misma tabla?
- 3. ¿Puedo tener $ _GET múltiples con la misma clave, diferentes valores?
- 4. Unir mesa dos veces: en dos columnas diferentes de la misma tabla
- 5. Dos versiones diferentes de JQuery en la misma página HTML
- 6. ¿Cómo tener diferentes tipos de entrada para la misma función?
- 7. Desarrollar la misma aplicación en dos computadoras diferentes
- 8. ¿Es posible tener dos contextos WebGL en la misma página?
- 9. ¿Cómo puedo tener dos randoms seguidos para dar valores diferentes?
- 10. Diferencia en dos valores de fila de la misma tabla
- 11. ¿Cómo usar dos Formularios Django diferentes en la misma plantilla?
- 12. NHibernate - multiple JOIN a la misma tabla mediante diferentes claves
- 13. Utilice dos UIViewAnimationCurves diferentes en la misma animación
- 14. TinyMCE - ¿Cómo puedo tener 2 editores en la misma página con diferentes complementos cargados?
- 15. ¿Puedo instalar dos versiones diferentes de Visual Studio en la misma computadora?
- 16. ¿Cómo cargar dos matrices en la misma tabla vista?
- 17. ¿Cómo comparo dos columnas en la misma tabla?
- 18. Obtener la identificación de una inserción en la misma declaración
- 19. ¿Puedo usar dos estilos y sensaciones diferentes en la misma aplicación Swing?
- 20. Diferentes genéricos T en la misma colección
- 21. ¿Puedo ejecutar dos servidores web en la misma computadora?
- 22. ¿Es normal tener dos elementos con la misma identificación en dos elementos div con otra identificación?
- 23. Asociación de rieles para dos claves foráneas para la misma tabla en una tabla
- 24. Tener dos sesiones diferentes en el mismo dominio
- 25. Disparadores en un sistema altamente transaccional
- 26. ¿Cómo puedo fusionar dos mapas en la misma lista?
- 27. Autowiring dos granos diferentes de una misma clase
- 28. Django: cómo tener una varias claves externas hace referencia a la misma tabla en una tabla
- 29. ¿Es posible tener un puntero común entre 2 programas diferentes en la misma computadora?
- 30. ¿No puede tener los mismos nombres de tabla en diferentes modelos de marcos de entidades?
¿Qué hacen los factores desencadenantes? La tabla 'INSERTED' no está indexada, por lo que, por razones de rendimiento, es mejor consolidarlos. –