Array
(
)

Triggers - receber o valor do campo da tabela

Wfmzip
   - 15 jul 2005

Boa tarde pessoal ,

Estou com o seguinte problema:

Construir uma trigger para que assim que for inserido um valor na tabela PCARGO alguns campos seta tabela fossem tratados e inseridos em outra tabela (R800IMP), até ai tudo bem o meu problema é, quando a trigger faz o insert na R800IMP ela não está levando o valor que eu acabei de inserir ou seja os valores que foram inserido na R800IMP são aleatorios e não os que acabei de inserir.

Segue abaixo o código da Trigger, se alguem puder me ajudar agradecerei...

Create TRIGGER ´SKOL´.´TG_INSERIR_CARIns´ ON ´Skol´.´rm´.´PCARGO ´
FOR INSERT
AS
DECLARE

@xCONDLOT INT,
@xCONTLIN INT,
@xCONINT VARCHAR(250),

@xCODCOLIGADA smallint,
@xNOME varchar(40),
@xCODIGO varchar(16),

@xDATA varchar(8)

BEGIN

SELECT @xCONDLOT=MAX(CodLot) FROM R800ILT
SET @xCONDLOT=@xCONDLOT+1
SET @xDATA=DAY(getdate())
SET @xDATA=@xDATA+CAST(MONTH(getdate()) AS VARCHAR)
SET @xDATA=@xDATA+CAST(YEAR(getdate()) AS VARCHAR)

SELECT @xNOME = NOME FROM PCARGO ****aqui a variavel recebe o valor que acabei de inserir na tabela PCARGO****8*
SELECT @xCODIGO = CODIGO FROM PCARGO ****aqui a variavel recebe o valor que acabei de inserir na tabela PCARGO****8*

SET @xCONTLIN=1
WHILE @xCONTLIN <= 4
BEGIN

IF @xCONTLIN=1
SET @xCONINT=´[R024CAR] ´

IF @xCONTLIN=2
SET @xCONINT=´ID_R024CAR=&ESTCAR=1 &CODCAR=´+CAST(@xCODIGO AS VARCHAR)

IF @xCONTLIN=3
SET @xCONINT=´TITCAR=´+CAST(@xNOME AS VARCHAR)

IF @xCONTLIN=4
SET @xCONINT=´TITRED=´+CAST(@xNOME AS VARCHAR)

Insert Into R800IMP(CodLot,NumLin,ConInt)Values(@xCONDLOT,@xCONTLIN,@xCONINT)
select @xCONTLIN=@xCONTLIN+1

end

END

Marcus.magalhaes
   - 23 jul 2005

Boa tarde.

Se vc quer capturar os valores q acabou de inserir, durante a execução de triggers, são criadas tabelas temporária chamadas inserted e deleted, sendo assim vc pode fazer um select na tabela inserted e capturar os valores q foram inseridos.

Ex.:

Select @var_nome = NOME
From inserted

PS.: as tabelas inserted e deleted tem a mesma estrutura da tabela que está sofrendo a inserção/deleção ou update.

Espero ter ajudado.

Att,