Usuário com melhor resposta
Criar trigger ou algo parecido

Pergunta
-
Prezados bom dia, seja se e possivel a SQL abaixo me retorna uma mensagem, gostaria que quanto fosse criado o proximo movimento (IDMOV), ele fizesse um update no campo COMPRAS, da observação.
vejam
SQL
SELECT T.CODCOTACAO,T.OBSERVACAO,T2.IDMOV,T3.NUMEROMOV,T4.COMPRAS FROM TCCOTACAO AS T
INNER JOIN TCCOTACAOITMMOV AS T2 ON T2.CODCOTACAO = T.CODCOTACAO AND T2.CODCOLIGADA = T.CODCOLIGADA
INNER JOIN TITMMOV AS TT ON TT.CODCOLIGADA = T2.CODCOLMOV AND TT.IDMOV = T2.IDMOV AND TT.NSEQITMMOV = T2.NSEQITMMOV
INNER JOIN TMOV AS T3 ON T3.CODCOLIGADA = TT.CODCOLIGADA AND T3.IDMOV = TT.IDMOV
INNER JOIN TMOVCOMPL AS T4 ON T4.CODCOLIGADA = T3.CODCOLIGADA AND T4.IDMOV = T3.IDMOV
WHERE T.CODCOTACAO = '2012.002460'
AND TIPOMOVCOMPRAS = '2'Resultado
Codcoltacao Obs: IMOV NUMERO COMPRAS
2012.002460 RONNIE 168305 019342 NULL
Resultado esperado
Codcoltacao Obs: IMOV NUMERO COMPRAS
2012.002460 RONNIE 168305 019342 RONNIE
obrigado a todos pela ajuda.
Respostas
-
Ronnie,
Veja se este exemplo ajuda a montar o seu trigger:
--Criando a Table de Novos Produtos-- Create Table NovosProdutos (Codigo Int Identity(1,1), Descricao VarChar(10)) --Criando a Table de Histórico Novos Produtos-- Create Table HistoricoNovosProdutos (Codigo Int, Descricao VarChar(10)) Go --Inserindo valores -- Insert Into Novosprodutos Values('Arroz') Insert Into Novosprodutos Values('Arroz1') Insert Into Novosprodutos Values('Arroz2') Insert Into Novosprodutos Values('Arroz3') Go --Criando a Trigger para controle de histórico-- Create TRIGGER T_Historico ON NovosProdutos for update AS IF (Select Descricao from Inserted) <> (Select Descricao from Deleted) BEGIN INSERT Into HistoricoNovosProdutos (Codigo, Descricao) SELECT Codigo, Descricao FROM INSERTED END Go --Fazendo os teste -- Update NovosProdutos Set Descricao='Arroz 4' Where Codigo = 1 Go Update NovosProdutos Set Descricao='Arroz1' Where Codigo = 2 Go
Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]
- Marcado como Resposta Ronnie Von segunda-feira, 11 de junho de 2012 17:54
Todas as Respostas
-
Ronnie,
Mas qual seria a condição para saber se teríamos que realizar o Update?
O que este Select deveria retornar com valor condicional?
Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]
-
-
Ronnie,
Veja se este exemplo ajuda a montar o seu trigger:
--Criando a Table de Novos Produtos-- Create Table NovosProdutos (Codigo Int Identity(1,1), Descricao VarChar(10)) --Criando a Table de Histórico Novos Produtos-- Create Table HistoricoNovosProdutos (Codigo Int, Descricao VarChar(10)) Go --Inserindo valores -- Insert Into Novosprodutos Values('Arroz') Insert Into Novosprodutos Values('Arroz1') Insert Into Novosprodutos Values('Arroz2') Insert Into Novosprodutos Values('Arroz3') Go --Criando a Trigger para controle de histórico-- Create TRIGGER T_Historico ON NovosProdutos for update AS IF (Select Descricao from Inserted) <> (Select Descricao from Deleted) BEGIN INSERT Into HistoricoNovosProdutos (Codigo, Descricao) SELECT Codigo, Descricao FROM INSERTED END Go --Fazendo os teste -- Update NovosProdutos Set Descricao='Arroz 4' Where Codigo = 1 Go Update NovosProdutos Set Descricao='Arroz1' Where Codigo = 2 Go
Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]
- Marcado como Resposta Ronnie Von segunda-feira, 11 de junho de 2012 17:54