Usuário com melhor resposta
Erro em Trigger de Update

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?
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
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
-
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.
-
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