EXEC msdb.dbo.sp_send_dbmail
@recipients='direccion',
Maestro ya lo tienes resuelto!!
Lo que si te recomendarías que observes es la frecuencia, pero en fin cada regla de negocio!!
Recuerda que SQL Server no sólo trabaja en bloques la cual es su naturaleza, también puede trabajar como trabaja Fox , leer registro por registro.
Lo que debes es crear Trigger y Store Procedure
En el Store Procedure, evaluas los registros que enviaras a determinados destinatarios bueno aquí lo realizas como lo realizarías en Fox, vas a tener que crear un cursor para recorrer los registros nada más.
El trigger avisará cuando realicen cambios en el registro de la tabla
Saludos,
Martín Inga
Hola. Yo tengo un proceso muy similar. El codigo que necesitas debe ser parecido a este:
-- spTMMQProcess
-- Procesa los trabajos pendientes y fallidos
--
IF OBJECT_ID('spTMMQProcess','P') IS NOT NULL
DROP PROCEDURE spTMMQProcess
GO
CREATE PROCEDURE spTMMQProcess(
@verbose BIT = 0
) AS BEGIN
SET NOCOUNT ON
IF @verbose = 1 SELECT 'TMMailQ'
DECLARE @rows CURSOR
SET @rows = CURSOR FOR SELECT 0 AS priority, mailID
FROM vwTMMQPending
UNION
SELECT 1 AS priority, mailId
FROM vwTMMQFailed
ORDER BY priority, mailId
DECLARE @mailId INT
,@response VARCHAR(max)
,@sent INT = 0
,@failed INT = 0
,@priority SMALLINT
OPEN @rows
FETCH NEXT FROM @rows INTO @priority, @mailId
WHILE @@FETCH_STATUS = 0 BEGIN
EXEC spTMMQSend @mailId, @response OUTPUT
IF @response = 'SENT' SET @sent = @sent + 1
IF @response <> 'SENT' SET @failed = @failed + 1
IF @verbose = 1 SELECT @mailId, @response
FETCH NEXT FROM @rows INTO @priority, @mailId
END
CLOSE @rows
DEALLOCATE @rows
IF @verbose = 1 BEGIN
SELECT 'Completed'
SELECT @sent,'sent'
SELECT @failed,'failed'
END
END
GO
Espero te sirva para tomar ideas.
Victor