Ver Mensaje Individual
  #4  
Antiguo 29-09-2014
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.734
Reputación: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Así es como debes hacerlo.
En un trigger AFTER INSERT.

Código SQL [-]
CREATE OR ALTER TRIGGER PCS_AI0 FOR PCS
ACTIVE AFTER INSERT POSITION 0
as
begin
  /* Inserto una lista de piezas */
  /* El campo IDPC lo relleno con el de esta tabla (new.idpc) */
  /* El campo IDTIPOPIEZA lo relleno con el select */
  insert into piezas (idpc, idTipoPieza)
  select new.idpc, Id_TipoPieza from TipoPieza;
end

Es como hacer
Código SQL [-]
INSERT INTO TABLA (CAMPO_1, CAMPO_2, ...)
SELECT CONSTANTE, CAMPO_A, CAMPO_B, ... FROM TABLA_B

También lo puedes hacer así:
Código SQL [-]
CREATE OR ALTER TRIGGER PCS_AI0 FOR PCS
ACTIVE AFTER INSERT POSITION 0
as
declare variable idTipoPieza integer;
begin
  /* Recorro la tabla de TipoPiezas */
  for select Id_TipoPieza from TipoPieza
      into :idTipoPieza
  do
      /* Inserto la pieza en la tabla de piezas de este PC */
      insert into piezas (idpc, idTipoPieza)
      values (new.idpc, :idTipoPieza);
end;

Última edición por duilioisola fecha: 29-09-2014 a las 17:04:28.
Responder Con Cita