Enviar correos desde SQL con dbmail
-
30 สิงหาคม 2555 17:49Buen día compañeros,
Vengo trabajando con sp_send_dbmail de sql,para enviar estados de cuenta a un grupo especifico de clientes. Requiero que la variable @body tenga un contenido como el siguiente:
"
Señores:
@Empresa
@Id_empresa
@Ubicacion
En el archivo adjunto encuentra el estado de cuenta correspondiente al periodo @periodo
"
Donde los valores @Empresa, @Id_empresa,
@Ubicacion y @periodo son variables que recupero de una tabla temporal o de un cursor podria ser. Estos valores son dinamicos por lo cual no los puedo dejar fijos. Como podria incluir a esta variable estos parametros para que al enviar la lista de correo cada mensaje sea personalizado?
Agradezco infinitamente su ayuda.
ตอบทั้งหมด
-
30 สิงหาคม 2555 18:23ผู้ดูแล
Hello,
This is an English speaking forum. Please consider the following spanish speaking forum:
http://social.msdn.microsoft.com/Forums/es/sqlserveres/threadsI would now try to answer your question in English.
Try to concatenate the text of the message with the variables and assign them to the @body.
---------------------------------------------------------------------------------------------------------Este es un foro en inglés. Por favor, considera el siguiente foro disponible en Español.
http://social.msdn.microsoft.com/Forums/es/sqlserveres/threads
Trata de concatenar el texto del mensaje con las variables, y luego asigna todo concatenado a @body.Hope this helps.
Regards,
Alberto Morillo
SQLCoffee.com
- แก้ไขโดย Alberto MorilloMVP, Moderator 30 สิงหาคม 2555 18:26
- แก้ไขโดย Alberto MorilloMVP, Moderator 30 สิงหาคม 2555 18:40
- แก้ไขโดย Alberto MorilloMVP, Moderator 30 สิงหาคม 2555 19:12
- แก้ไขโดย Alberto MorilloMVP, Moderator 30 สิงหาคม 2555 19:21
- แก้ไขโดย Alberto MorilloMVP, Moderator 30 สิงหาคม 2555 19:22
- ทำเครื่องหมายเป็นคำตอบโดย Maggie LuoMicrosoft, Moderator 9 กันยายน 2555 16:14
-
30 สิงหาคม 2555 19:23
Gracias Alberto,
Lo intente pero requiero que tenga los saltos de linea, por lo que es una comunicación a cliente final. Al concatenar si pone los datos de las variables.
:) Tks por contestar
Ztorres
-
30 สิงหาคม 2555 19:29ผู้ดูแล
Hello,
Please add CHAR(13) and CHAR(10) when needed.
----------------------------------------------------------------------------------
Por favor adiciona CHAR(13) y CHAR(10) a conveniencia.
http://blog.sqlauthority.com/2007/08/22/sql-server-t-sql-script-to-insert-carriage-return-and-new-line-feed-in-code/Hope this helps.
Regards,
Alberto Morillo
SQLCoffee.com- ทำเครื่องหมายเป็นคำตอบโดย Maggie LuoMicrosoft, Moderator 9 กันยายน 2555 16:14
-
30 สิงหาคม 2555 22:00
Funcionó como indicaba en el foro que posteaste aquí, le deje las etiquetas html al texto que manejaba en mis pruebas y ya quedo el body con el formato que necesitaba.
Muchas gracias por atender la consulta ;)
Ztorres
-
30 สิงหาคม 2555 22:43ผู้ดูแล
Hello,
I am glad it worked for you.
Thank you for visiting MSDN Forums!
Regards,
Alberto Morillo
SQLCoffee.com -
11 กันยายน 2555 13:56
Alberto buen día,
Tengo un nuevo lio pero esta vez es con el archivo adjunto que intento enviar en un segundo correo de notificación :(. Resulta que cada registro no lo muestra en la misma fila sino que se salta a la siguiente fila, es decir de 15 campos que componen cada registro se muestran 12 de modo continuo y los 3 restantes en la siguiente fila.
Coloco aquí la definición de lo que estoy haciendo a ver si me puedes sugerir. Por anticipado mil gracias!
DECLARE @namearc VARCHAR (100) SET @namearc='Inconsistencia_Pagos'+convert(varchar, convert(datetime, getdate()), 112)+'.csv'
DECLARE @empresa NVARCHAR (30) SET @empresa='A086069'
DECLARE @squery varchar (max)
SET @squery='SELECT DISTINCT D.DESCRIPCION A, R.EMPLE_ID B, X.NAPELLIDO C,CASE WHEN R.PERIODO IS NULL THEN '''' ELSE R.PERIODO END AS D, CASE WHEN R.DIAS_ESTIMADOS IS NULL THEN '''' ELSE R.DIAS_ESTIMADOS END AS E, CASE WHEN R.DIAS_COTIZADOS IS NULL THEN '''' ELSE R.DIAS_COTIZADOS END AS F, CASE WHEN R.SALARIO_ESTIMADO IS NULL THEN 0 ELSE R.SALARIO_ESTIMADO END AS G, CASE WHEN R.SALARIO_COTIZADO IS NULL THEN 0 ELSE R.SALARIO_COTIZADO END AS H, CASE WHEN R.IBC_ESTIMADO IS NULL THEN 0 ELSE R.IBC_ESTIMADO END AS I, CASE WHEN R.IBC_COTIZADO IS NULL THEN 0 ELSE R.IBC_COTIZADO END AS J, CASE WHEN R.TARIFA_ESTIMADA IS NULL THEN 0 ELSE R.TARIFA_ESTIMADA END AS K, CASE WHEN R.TARIFA_COTIZADA IS NULL THEN 0 ELSE R.TARIFA_COTIZADA END AS L, CASE WHEN R.VALOR_ESTIMADO IS NULL THEN 0 ELSE R.VALOR_ESTIMADO END AS M, CASE WHEN R.VALOR_COTIZADO IS NULL THEN 0 ELSE R.VALOR_COTIZADO END AS N, CASE WHEN R.CARTERA IS NULL THEN 0 ELSE R.CARTERA END AS O FROM nbprod.nbdarp.DEPURACION.ANALISIS_CARTERA R WITH(NOLOCK) INNER JOIN nbprod.nbdarp.DEPURACION.DESCRIPCION_RAZON_CARTERA D ON R.RAZON_CARTERA = D.CODIGO INNER JOIN ( SELECT DISTINCT EMPLE_ID,(EMPLE_PNOM+EMPLE_PAPEL)NAPELLIDO FROM nbprod.nbdarp.DBO.EMPLEADO WITH(NOLOCK) WHERE EMPRE_FORM="'+@empresa+'" )X ON X.EMPLE_ID=R.EMPLE_ID WHERE R.EMPRE_FORM="'+@empresa+'"'
EXEC msdb.dbo.sp_send_dbmail @recipients='micorreo@micorreo.com',
@subject ='test',
@profile_name='miprofile',
@body = 'detalle de inconsistencias',
@query=@squery,
@attach_query_result_as_file = 1,
@query_attachment_filename =@namearc,
@query_result_separator=',';Ztorres
-
11 กันยายน 2555 15:26ผู้ดูแล
Hello,
Use the @query_result_width option. Default value is 256.
Please see the following article:
http://msdn.microsoft.com/en-us/library/ms190307.aspx
Hope this helps.
Regards,
Alberto Morillo
SQLCoffee.com- ทำเครื่องหมายเป็นคำตอบโดย ztoni26 11 กันยายน 2555 17:38
-
11 กันยายน 2555 17:37
Apeciado Alberto,
Excelente, funcionó perfectamente, tks! :)
ZT.
Ztorres
-
11 กันยายน 2555 18:18ผู้ดูแล
Hello,
Thank you for letting me know and thank you for visiting MSDN forums!
Regards,
Alberto Morillo
SQLCoffee.com -
12 กันยายน 2555 22:40
Alberto que pena nuevamente una consulta es que en el foro postee mi pregunta pero ha sido mas complejo.
Esta es la situacion:
Solicito su colaboración con la siguiente consulta:
Requiero restaurar una base de datos que esta en SQL Server 2000 de un día en particular, tengo los archivos .mdf y ldf de ese dia pero no tengo claro que debo hacer para restaurar adecuadamente la base de datos con estos archivos.
El motor esta operativo y funcional, la base de datos no se ha dañado, solo requiero restaurarla a ese dia y ya.En el foro alguien me respondió que con solo adjuntar los archivos era suficiente y no se necesitaba reiniciar ningun servicio de SQL...
Me pregunto si eso es asi no se puede solo reemplazar los archivos .ldf y mdf y ya ?
Quedo atenta de tu respuesta.
Por anticipado, muchas gracias!
ZtorresZtorres