none
Erro em Trigger de Update RRS feed

  • Pergunta

  •          If update(cd_Local_Servico_Atendimento)  
                Begin  
                   Insert into Log_Local_Servico_Causa(nu_Transacao, dt_Transacao,fl_tipo_local_servico,
    			   cd_local_servico_origem, cd_local_servico_destino, cd_causa)			   
    			   
    
    			If @tp_Transacao = 'D'        
                Begin        
                   Insert Log_Local_Servico_Causa( nu_Transacao,     
                                     dt_Transacao,    
    								 fl_tipo_local_servico,  
                                     cd_local_servico_origem,    
                                     cd_local_servico_destino,   
                                     cd_causa    
                                     )        
            
        Select @nu_Transacao,     
                        dt_Transacao = getdate(),    
    					--fl_tipo_local_servico,  
                        cd_local_servico_origem = cd_Local_Servico_Atendimento,    
                        cd_local_servico_destino = cd_Local_Servico_Atendimento,   
                        cd_causa
                     From Deleted        
                End        
    No código acima esta trigger sempre que ocorrer alguma alteração ou atualização na tabela Causa, coluna (cd_atendimento) eu preciso inserir algumas informações na tabela Log. Entretanto nesta tabela Causa não possui a coluna comentada acima "FL_TIPO_LOCAL_SERVICO" mas na log precisa dessa informação . Como posso proceder?

    Segundo questionamento: Logo após o insert into o If está sublinhado com erro de sintaxe, o que eu posso melhorar?
    segunda-feira, 10 de agosto de 2020 15:32

Respostas

  • Boa tarde,

    Qual valor você quer inserir na coluna FL_TIPO_LOCAL_SERVICO? Se for um valor fixo você pode colocar esse valor no Select, exatamente no local onde você comentou a coluna.

    Sobre o erro de sintaxe, me parece que o primeiro Insert está sobrando no seu código. O erro de sintaxe deve estar ocorrendo porque esse Insert está sem o Values ou um Select abaixo para fornecer os valores a serem inseridos.

    Espero que ajude


    Assinatura: http://www.imoveisemexposicao.com.br

    • Marcado como Resposta Luan Azevedo segunda-feira, 10 de agosto de 2020 18:02
    segunda-feira, 10 de agosto de 2020 16:40

Todas as Respostas

  • Boa tarde,

    Qual valor você quer inserir na coluna FL_TIPO_LOCAL_SERVICO? Se for um valor fixo você pode colocar esse valor no Select, exatamente no local onde você comentou a coluna.

    Sobre o erro de sintaxe, me parece que o primeiro Insert está sobrando no seu código. O erro de sintaxe deve estar ocorrendo porque esse Insert está sem o Values ou um Select abaixo para fornecer os valores a serem inseridos.

    Espero que ajude


    Assinatura: http://www.imoveisemexposicao.com.br

    • Marcado como Resposta Luan Azevedo segunda-feira, 10 de agosto de 2020 18:02
    segunda-feira, 10 de agosto de 2020 16:40
  • Boa tarde!

    Mas no caso o insert que mencionou é para que sempre que houver qualquer atualização na coluna cd_Local_Servico_Atendimento da tabela Causa eu tenho que inserir os valores de alguns campos na tabela LOG

    Log_Local_Servico_Causa(nu_Transacao, dt_Transacao,fl_tipo_local_servico,
    			   cd_local_servico_origem, cd_local_servico_destino, cd_causa)

     O outro If @tp_Transacao = 'D'  é pra quando houver alguma atualização de Delete e tem um outro pra Inserted para Insert.

    segunda-feira, 10 de agosto de 2020 16:59
  • Nesse caso está faltando você especificar quais valores devem ser inseridos nesse primeiro Insert, e para isso você tem que acrescentar a clausula Values ou um Select abaixo do Insert.

    Assinatura: http://www.imoveisemexposicao.com.br

    segunda-feira, 10 de agosto de 2020 17:19