SQL Server - Como integrar un IF o CASE condiciones a todo el proceso indicado

   
Vista:

Como integrar un IF o CASE condiciones a todo el proceso indicado

Publicado por Jazpef (5 intervenciones) el 12/02/2014 21:31:46
Tengo un Script SQL Server que lo que realiza es mandar un correo (notificación) a los destinatarios indicado, funciona y todo, este script tiene procesos almacenados que funcinan conjunto con este para que se envie el correo en formato HTML, la información se almacena en una tabla temporal y se envie sin problemas PERO MI DUDA ES:

¿Como puede poner un IF o CASE o algun otra alternativa? para que se envie el correo o no, es decir si el SELECT almacenado tiene informacion mande el correo de lo contrario no mande nada y no realize la operacion, ya intente de diversas formas integrar o poner un IF o CASE me marca errores y no me lo permite por lo que ya ando algo perdido, posiblemente sea algo facil pero ya me atore y no se como realizarlo, si pudieran orientar se los agradeceria.

Por ejemplo he intentado y no funciona:

--DECLARE @TABLAS VARCHAR (MAX)
--EXEC @TABLAS = OpenSercas..JAPF_SpSinCerrarSDB 'JAPF'
--IF @TABLAS NOT IN ('',' ',NULL)

--IF (EXEC OpenSercas..JAPF_SpSinCerrarSDB 'JAPF') NOT IN ('',' ',NULL)
--BEGIN

--DECLARE @SELECT VARCHAR (MAX)
--DECLARE @TABLAS VARCHAR (MAX)
--EXEC @TABLAS = OpenSercas..JAPF_SpSinCerrarSDB 'JAPF'
--SET @SELECT = (CASE
-- WHEN @TABLAS NOT IN (' ','',NULL) THEN (

-- Y NADA PUEDO HACER QUE FUNICIONE :S


Codigo:

SET NOCOUNT ON
SET ANSI_WARNINGS OFF

DECLARE @profile_name VARCHAR(200)
DECLARE @recipients VARCHAR(MAX)
DECLARE @subject nVARCHAR(400)
DECLARE @mensajeCuerpo varchar(250)
SET @mensajeCuerpo ='<div style="font-size: 10.0pt; font-family: &quot;Thaoma&quot;,&quot;Arial&quot;;"><br><br>¡Buen día!<br><br>Favor de continuar con el seguimiento de las seguientes referencias: <br></div>'
SET @profile_name = 'NAAPP'
SET @recipients = 'Name.App@dominio.com'
SET @subject = 'Reportes faltantes de atención de' +' '+'Name App'+' '+'-'+' '+ (CAST(Datename(month,getdate()) as nvarchar)) +' '+
(CAST(DatePart(day,getdate()) as varchar(2))) +','+ ' '+
(CAST(DatePart(year,getdate()) as varchar(4))) +' '+ '-'+' '+
(CAST(DatePart(hour,getdate()) as varchar(2))) +':'+
(CAST(DatePart(minute,getdate()) as varchar(2)))

CREATE TABLE #TMPTABLA1 (
[#] int IDENTITY,
Referencia int,
Clasificacion varchar (50),
Fecha_Registro varchar (80),
Sistema varchar(50),
Servicio_Reportado varchar(100),
Cliente varchar(50),
Estado varchar(50),
Usuario_Registro varchar(50),
Representante varchar(50),
Grupo_Representante varchar(50),
Fuente_Contacto varchar(50),
Status_Ticket varchar(50),
Fecha_Status varchar (80),
FechaUltimaBitacora varchar (80)
)

INSERT INTO #TMPTABLA1 (Referencia, Clasificacion, Fecha_Registro, Sistema, Servicio_Reportado, Cliente, Estado, Usuario_Registro, Representante, Grupo_Representante, Fuente_Contacto, Status_Ticket, Fecha_Status, FechaUltimaBitacora)
EXEC OpenSercas..JAPF_SpSinCerrarSDB 'JAPF'

CREATE TABLE #TABLAPASOHTML (
TABLA NVARCHAR(MAX)
)
exec OpenSercas.dbo.JAPF_SpSelExportTablaHtmlSD 'tempdb.dbo.#TMPTABLA1', @mensajeCuerpo, '#'

DECLARE @body NVARCHAR(MAX)
DECLARE @head NVARCHAR(MAX)
DECLARE @bodyfinal NVARCHAR(MAX)
DECLARE @Firma varchar(max)
DECLARE @TablaHTML1 NVARCHAR(MAX)

SELECT @head = OpenSercas.dbo.JAPF_fnHeadTablaSD()
SELECT @Firma = OpenSercas.dbo.JAPF_fnFirmaJAPF(1)
SET @body ='<html>'+@head +'<body>'
SET @TablaHTML1 =''
SELECT @TablaHTML1 =@TablaHTML1 +TABLA FROM #TABLAPASOHTML
SELECT @TablaHTML1 = Replace(@TablaHTML1, '&lt;', '<')
SELECT @TablaHTML1 = Replace(@TablaHTML1, '&gt;', '>')
SET @bodyfinal ='</body></html>'
SET @body = @body + @TablaHTML1+@Firma+@bodyfinal

DROP TABLE #TABLAPASOHTML
DROP TABLE #TMPTABLA1

EXEC msdb.dbo.sp_send_dbmail
@profile_name = @profile_name
,@recipients= @recipients
,@query_no_truncate=1
,@query_result_separator=''
,@subject = @subject
,@body=@body
,@body_format='HTML'
,@query_result_width=32767;

SET NOCOUNT OFF
SET ANSI_WARNINGS ON
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Isaias

Como integrar un IF o CASE condiciones a todo el proceso indicado

Publicado por Isaias (3186 intervenciones) el 13/02/2014 00:13:04
Regla 1 en los foros: NO DUPLICAR PREGUNTAS
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Como integrar un IF o CASE condiciones a todo el proceso indicado

Publicado por Jazpef (5 intervenciones) el 13/02/2014 01:33:52
Una disculpa, pense que la habia puesto en seccion incorrecta, ya que vi que habia 2 de "SQL"
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar