Usuário com melhor resposta
Problema SP send_dbmail

Pergunta
-
Boa tarde, já estava tratando esse assunto, no entanto foi encerrado.
Estou com um problema bem especifico, estou criando uma trigger, para enviar um email para os interessados, assim que algo de interesse deles é adicionado ou retirado do sistema.
No entanto eu estou tendo alguns problemas, a principio a trigger estava funcionando normalmente. Mais para o que eu preciso é necessário que eu também use o @query do send_mail para por exemplo enviar os registros recém adicionados ao banco de dados.
O mais estranho é que sem o @query tudo funciona normalmente, porem quando adiciono o @query a consulta fica executando eternamente e não finaliza.
Segue novamente o trecho do código
CREATE TRIGGER SC1_MAIL ON SC1990 AFTER INSERT AS -- variáveis de consulta ao banco declare @num varchar(6); declare @solict varchar(25); -- variáveis de envio do email Declare @sbody as VarChar(4000); select @num=i.C1_NUM, @solict=i.C1_SOLICIT from inserted i; set @sbody = 'Solic. Num: ' + @num + ' Solicit: ' + @solict; -- Declare @queryy as nvarChar(max) = 'SELECT C1_PRODUTO, C1_QUANT FROM MP12.dbo.SC1990'; EXEC msdb.dbo.sp_send_dbmail @profile_name = 'Perfil Padrao', @recipients = 'teste@teste.com.br', @subject = 'Numero:', @body = @sbody, @query = 'SELECT C1_PRODUTO, C1_QUANT FROM MP12.dbo.SC1990;', @body_format = 'HTML', @attach_query_result_as_file = 1; GO
Respostas
-
Lucas,
Eu sugeri você fazer isso somente para verificar se a trigger executa sem problemas. Se executar, o erro é bem específico da chamada da SP. O objetivo era saber exatamente o comando que gera o problema.
Antonio Cesar
- Editado Antonio Cesar segunda-feira, 30 de novembro de 2015 18:16
- Marcado como Resposta Marcos SJ quinta-feira, 3 de dezembro de 2015 16:17
Todas as Respostas
-
Pessoal boa tarde,
Estou tendo problemas ao utilizar a SP send_dbmail juntamente com uma
Trigger que eu criei.
Basicamente a trigger vai servir para avisar determinado email que foram
inseridos novos registros.
O estranho é que a trigger e o envio simples do email estavam funcionando
normal.
O problema começou a ocorrer após eu adicionar a função da SP @query, dessa
forma quando vou efetuar o INSERT ele fica executando infinitamente porem
não retorna nenhum erro.
CREATE TRIGGER SC1_MAIL ON SC1990 AFTER INSERT AS -- variaveis de consulta ao banco declare @num varchar(6); declare @solict varchar(25); -- variaveis de envio do email Declare @sbody as VarChar(4000); select @num=i.C1_NUM, @solict=i.C1_SOLICIT from inserted i; set @sbody = 'Solic. Num: ' + @num + ' Solicit: ' + @solict; -- Declare @queryy as nvarChar(max) = 'SELECT C1_PRODUTO, C1_QUANT FROM MP12.dbo.SC1990'; EXEC msdb.dbo.sp_send_dbmail @profile_name = 'Perfil Padrao', @recipients = 'teste@teste.com.br', @subject = 'Numero:', @body = @sbody, @query = 'SELECT C1_PRODUTO, C1_QUANT FROM MP12.dbo.SC1990;', @body_format = 'HTML', @attach_query_result_as_file = 1; GO
Se alguém puder ajudar agradeço.
- Editado Lucas Fernando Rosa quinta-feira, 26 de novembro de 2015 19:30 email
- Mesclado Marcos SJ segunda-feira, 30 de novembro de 2015 17:57 Thread duplicada
-
-
Ola Antonio tudo bem ?
O código é a mesma coisa apenas sem:
@query, @attach_query_result_as_file.
Realmente não tem nenhuma outra diferença, como falei se eu utilizo o send_dbmail fora da trigger funciona.
Não sei se pode ter algo a ver com alguma permissão, pois não estou conseguindo identificar.
Alias estou usando usuario SA para esses testes.
-
Lucas, boa tarde.
Tente pegar todo o código da trigger e execute numa sessão separada, como se fosse um script. Onde é feita referencia aos dados inseridos (Inserted), remova a referencia e coloque os valores desejados para as variáveis @num e @solict. Veja se não ocorre erro. Se ocorrer, faça o acerto no código e veja se funciona. Se funcionar no script, faça o acerto na trigger e refaça os testes.
Antonio Cesar
-
Continuo sem conseguir identificar.
Executei o script como você me falou, retirei o inserted e no lugar adicionei um select comum.
Foi executado normalmente.
Então retirei o inserted da Trigger apenas para fazer um teste pois achei que iria funcionar.
No entanto o problema continua. -
-
Bom dia,
Por falta de retorno do usuário, esta thread será encerrada.
Caso seja necessário, por gentileza, abra uma thread nova.
AtenciosamenteMarcos Roberto de Souza Junior
Esse conteúdo e fornecido sem garantias de qualquer tipo, seja expressa ou implícita
MSDN Community Support
Por favor, lembre-se de Marcar como Resposta as respostas que resolveram o seu problema. Essa e uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.
- Marcado como Resposta Marcos SJ segunda-feira, 30 de novembro de 2015 12:14
-
-
Lucas,
Eu sugeri você fazer isso somente para verificar se a trigger executa sem problemas. Se executar, o erro é bem específico da chamada da SP. O objetivo era saber exatamente o comando que gera o problema.
Antonio Cesar
- Editado Antonio Cesar segunda-feira, 30 de novembro de 2015 18:16
- Marcado como Resposta Marcos SJ quinta-feira, 3 de dezembro de 2015 16:17
-
Você levou em conta a observação do Antonio Cesar?
Marcos Roberto de Souza Junior
Esse conteúdo e fornecido sem garantias de qualquer tipo, seja expressa ou implícita
MSDN Community Support
Por favor, lembre-se de Marcar como Resposta as respostas que resolveram o seu problema. Essa e uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.
-
Desculpe pela demora em retornar é que estou com varias outras coisas para resolver.
Acabei não tendo muito tempo para mexer na trigger, mais continua com o mesmo problema.
Se eu não utilizo o SP_SEND a trigger funciona normalmente, se utilizo a SP_SEND funciona apenas não funciona quando eu utilizo:
@query, @attach_query_result_as_file.
Será que pode ter algum bloqueio ? Como já mencionei estou utilizando usuário SA e aparentemente todas as permissões estão concedidas.