Triggers - receber o valor do campo da tabela

15/07/2005

0

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


Wfmzip

Wfmzip

Responder

Posts

23/07/2005

Marcus.magalhaes

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 [b:6078a2f393]inserted[/b:6078a2f393] e [b:6078a2f393]deleted[/b:6078a2f393], sendo assim vc pode fazer um select na tabela inserted e capturar os valores q foram inseridos.

Ex.:
[color=blue:6078a2f393]
Select @var_nome = NOME
From inserted
[/color:6078a2f393]

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

Espero ter ajudado.

Att,


Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar