SQL отправил задания по электронной почте

Как лучше всего использовать запланированные задания для отправки электронной почты? Прямо сейчас то, как мы это делаем, сложно. Присоединение таблиц Excel работает только в полнолуние, а прямые данные выглядят загадочно. Есть ли способ лучше? Я использую SSMS 17.5. Кто-то сказал, что то, как мы это делаем, устарело. Какой лучший способ сделать это? Я думал, что с SSMS мы застряли. Спасибо.

Это маленький пример:

GO
/****** Object:  StoredProcedure [dbo].[EMAIL_HoursReport]    Script Date: 2/26/2018 2:03:42 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


ALTER PROCEDURE [dbo].[EMAIL_HoursReport]   --exec EMAIL_HoursReport @nvRecipients  = 'me@gmail.com'

(
    @nvRecipients as varchar(1000)
)
AS

Declare @nvMessage nvarchar(1000)
Declare @nvSubject nvarchar(1000)
Declare @nvQuery nvarchar(4000)
Declare @iWidth int
Set @iWidth = 4000
Set @nvSubject = ' Hours Report ' 

CREATE TABLE #Data
(
  Hours varchar(50)
, FirstName varchar(50)
, LastName varchar(50)
)

INSERT INTO #Data
SELECT Hours, FirstName, LastName FROM EmpData
WHERE CAST(DateEntered as datetime) = CAST(CONVERT(CHAR(16), GETDATE(),112) AS datetime)
AND Cast(Hours as float) > 10

IF EXISTS (SELECT * FROM #Data)
    BEGIN   
        SET @nvquery = 'SELECT Hours, FirstName, LastName FROM #Data' 
        SET @nvMessage = 'Hours Report ' + isnull(' - (' + db_name() + '.dbo.' + object_name(@@procid) + ')', '')
        EXEC msdb.dbo.sp_send_dbmail_mod
            @recipients = @nvRecipients,
            @subject = @nvSubject,
            @body = @nvMessage,
            @query = @nvQuery
    END
    DROP TABLE #Data

0 ответов

Другие вопросы по тегам