none
Enviar Email al ejecutar una sentencia sql RRS feed

  • Pregunta

  • Buen dia, como puede hacer para que al momento de ejecutar una sentencia sql y que me retorne registros, me envié un correo con los resultados. Saludos.
    sábado, 8 de julio de 2017 14:53

Respuestas

  • Podrías declarar una variable y almacenar alli el resultado, entoces si devuelve resultados envía el correo caso contrario no lo hace.

    Create procedure spPrueba

    as

    DECLARE @mensaje NVARCHAR(max);

    select  @mensaje = ' Datos1: ' + DatosDeColumna1 + ' Datos2: ' + DatosDeColumna2

    From NombreTabla where DatoAComparar < 0

    IF @mensaje IS NOT NULL --Aqui consulta si la variable no esta vacia enviara el correo BEGIN EXEC msdb.dbo.sp_send_dbmail @profile_name=‘NombreDelPerfilCreado’ , --primero debes configurarlo @recipients= ‘nombre@Correo.com’,--aquien sera enviado el correo @subject= ‘Prueba de envio esde SQL Server’,--asunto del correo @body= @mensaje, --envias el correo con el resultado @body_format = 'HTML',--formato @importance = 'High';--importancia END;

    Espero te sea de ayuda.

    Saludos



    • Editado osrol sábado, 8 de julio de 2017 17:09
    • Propuesto como respuesta osrol lunes, 10 de julio de 2017 12:39
    • Marcado como respuesta Joyce_ACModerator lunes, 10 de julio de 2017 15:23
    sábado, 8 de julio de 2017 16:08

Todas las respuestas

  • Primero debes habilitar y configurar el correo de la base de datos creando un perfil en Explorador de Objetos, Administracion, Correo Electronico de Base de datos, Clic derecho configurar correo.

    Luego puedes utilizar el siguiente comando

    EXEC  msdb.dbo.sp_send_dbmail @profile_name=‘NombreDelPerfilCreado’ , --primero debes configurarlo
    @recipients= ‘nombre@Correo.com’,--aquien sera enviado el correo
    @subject= ‘Prueba de envio esde SQL Server’,--asunto del correo
    @body= ‘Aqui va el contenido o cuerpo del e-mail’,
    @body_format = 'HTML',--formato
    @importance = 'High';--importancia

    Espero te sirva.

    Saludos.


    • Editado osrol sábado, 8 de julio de 2017 15:34
    sábado, 8 de julio de 2017 15:31
  • Gracias por contestar, ya creé el perfil, ejecute la prueba y todo bien, es solo que quiero mandar el contenido de una sentencia SQL, pero cuando la sentencia arrogue resultados, por ejemplo cuanto tenga negativos en un registro me mande una alerta por correo, y si no tengo ningun registro negativo no me envie el correo.

    Use Prueba;

    select 
    [JobHead].[JobNum] as [JobHead_JobNum],
    [JobHead].[PartNum] as [JobHead_PartNum],
    (JobHead.ProdQty - JobHead.QtyCompleted) as [Calculated_OverJob]
    from Erp.JobHead as JobHead
    where  (JobHead.ProdQty - JobHead.QtyCompleted) < '0'

    Esa seria la sentencia para ver negativos.Saludos

    sábado, 8 de julio de 2017 15:49
  • Podrías declarar una variable y almacenar alli el resultado, entoces si devuelve resultados envía el correo caso contrario no lo hace.

    Create procedure spPrueba

    as

    DECLARE @mensaje NVARCHAR(max);

    select  @mensaje = ' Datos1: ' + DatosDeColumna1 + ' Datos2: ' + DatosDeColumna2

    From NombreTabla where DatoAComparar < 0

    IF @mensaje IS NOT NULL --Aqui consulta si la variable no esta vacia enviara el correo BEGIN EXEC msdb.dbo.sp_send_dbmail @profile_name=‘NombreDelPerfilCreado’ , --primero debes configurarlo @recipients= ‘nombre@Correo.com’,--aquien sera enviado el correo @subject= ‘Prueba de envio esde SQL Server’,--asunto del correo @body= @mensaje, --envias el correo con el resultado @body_format = 'HTML',--formato @importance = 'High';--importancia END;

    Espero te sea de ayuda.

    Saludos



    • Editado osrol sábado, 8 de julio de 2017 17:09
    • Propuesto como respuesta osrol lunes, 10 de julio de 2017 12:39
    • Marcado como respuesta Joyce_ACModerator lunes, 10 de julio de 2017 15:23
    sábado, 8 de julio de 2017 16:08
  • Gracias por tu Respuesta, La verdad soy nuevo en esto, y no se como declarar el resultado en una variable. Saludos
    sábado, 8 de julio de 2017 16:25
  • Acabo de Editar mi respuesta.

    Espero te sirva Saludos.

    sábado, 8 de julio de 2017 17:10