2012-08-16 17 views
7

Creé un disparador FOR INSERT que se disparará después de insertarlo. A continuación se muestran los diferentes escenarios para los cuales me gustaría saber cómo disparará el disparador.Cómo disparará el disparador en varias filas inserte en una sola transacción

El disparador está en una mesa employee. Comienzo una transacción donde inserto 4 filas. Mi duda es cómo disparará el disparador.

  1. ¿Se disparará inmediatamente después de insertar cada fila?
  2. ¿Va a disparar después de la finalización de todas las filas de esa transacción

somos capaces de acceder a los inserted & deleted mesas especiales del gatillo.

  1. ¿Cuántas filas estarán presentes en esas tablas cada vez? ¿Solo un registro? O múltiples registros?

Gracias de antemano.

+3

Sin ver cómo está realizando la inserción de 4 filas, no es posible decir qué verá el activador. ¿Se trata de 4 instrucciones de inserción separadas, o una declaración de inserción que inserta las 4 filas? –

+0

Quiero saber en ambos escenarios. – Ramakrishna

Respuesta

11

El disparador se activará después de cada declaración INSERT.

Si tiene 4 INSERT declaraciones, cada una de 1 fila, el disparador se disparará 4 veces con 1 registro en la tabla especial inserted después de cada inserción.

Si tiene 1 INSERT extracto de 4 filas, el disparador se disparará solo una vez con 4 registros en la tabla especial inserted después del inserto.

Si son inserciones transaccionales, las acciones que realice en el desencadenante también serán transaccionales. Esto es muy importante si el desencadenador tiene una transacción interna.

Cuestiones relacionadas