Inicio > SQL Server > panzaverde > Realizar TRIGGER con bucle interno

Realizar TRIGGER con bucle interno

Experto:
Usuario:
Fecha: 07/07/2008
Valoración: (5,00 sobre 5) Categoría: SQL Server
27/06/2008
upcreative, usuario preguntando en SQL Server
Usuario
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
27/06/2008
upcreative, experto respondiendo en SQL Server
Experto
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
27/06/2008
upcreative, usuario preguntando en SQL Server
Usuario
¿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.
27/06/2008
upcreative, experto respondiendo en SQL Server
Experto
el Insert select inserta tantas filas como las que seleccionó.
Saludos
07/07/2008
upcreative, usuario preguntando en SQL Server
Usuario
Perfecto, efectivamente con la respuesta del select inserto todos los resultados que me convienen en el insert con las variables deseadas.
Muchas gracias.
Enlaces patrocinados