Todoexpertos.com
http://www.todoexpertos.com
La respuesta está en Internet
Información de la pregunta
Título: Realizar TRIGGER con bucle interno
Experto: panzaverde
Valoración: 5
Fecha: 27/06/2008


Realizar TRIGGER con bucle interno
Hola,  estoy realizando un TRIGGER que va a insertar registros en una tabla con el código del último registro insertado en la tabla1 que lanza el trigger. Hasta aqui facil, el problema viene porque necesito insertar tantos registros como  elementos encuentre en otra tabla2, además de necesitar el ID de esta tabla para insertarlos tambien en cada registro. He pensado que necesitaría un bucle para recorrer la tabla2, sacar el id por cada pasada y así hacer el insert en la tabla de destino con el id de la tabla1 y el id de la tabla2. Adjunto lo que tengo del trigger por si os sirve como referencia o para aclaraos. ALTER TRIGGER [ProcesosPerfiles] ON [dbo].[Procesos] AFTER INSERT       AS BEGIN       DECLARE @IDProceso INT, @IDPerfil INT       SELECT @IDProceso=MAX(IdProceso) FROM dbo.Procesos       SELECT @IDPerfil=IdPerfil FROM dbo.Perfiles ORDER BY IdPerfil DESC /*AQUI DEBERIA EMPEZAR EL BUCLE*/ /*LA XX ES DONDE TENGO QUE PONER EL ID QUE RECOJO EN LA TABLA Perfiles*/       INSERT INTO dbo.PerfilProceso (IdPerfil, IdProceso) VALUES (XX, @IDProceso) END Muchas gracias

Realizar TRIGGER con bucle interno
No estoy muy afinado con los triggers por lo que no se si se puede hacer dentro del trigger pero simpre que se pueda resolver algo con sql es la primer opcion. Intenta hacer INSERT INTO  ... y en lugar de VALUES usá: Select xx, @idproceso from perfiles. Saludos

Realizar TRIGGER con bucle interno
¿Pero esto me va a insertar tantos resultados como registros me devuelva el SELECT o solo me va a insertar el primero? Lo probaré y te digo algo con el resultado.   Un saludo y gracias.

Realizar TRIGGER con bucle interno
el Insert select inserta tantas filas como las que seleccionó. Saludos

Pregunta finalizada. Valoración: 5
Perfecto, efectivamente con la respuesta del select inserto todos los resultados que me convienen en el insert con las variables deseadas. Muchas gracias.


Volver al mensaje
http://www.todoexpertos.com/categorias/tecnologia-e-internet/bases-de-datos/sql-server/respuestas/1869493/realizar-trigger-con-bucle-interno