Как реализовать создание периодического отчета на почту

Задача: периодически направлять на определенную почту отчет о состоянии объектов в системе. 

Для этого реализуем функциональность по следующей схеме: 

1. Хранимая процедура подготовки данных и формирования результата в виде разметки

2. Вызов внешнего действия с отправкой почты. 

Примеры: 

Готовим данные в хранимой процедуре 1: 

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER PROCEDURE [dbo].[as_perf_diag]
	@level int =1,
	@s nvarchar(max) OUTPUT
AS
BEGIN	
declare @t1 table (title nvarchar(max), db nvarchar(256), [desc] nvarchar(max), 
	digit nvarchar(512), important int)
declare @s1 nvarchar(max)=''

-- пример сбора данных 
insert into @t1(title, db, [desc], digit, important)
SELECT TOP 3 
	'Запрос с большим CPU' title, 
	db_name(st.dbID) db,
	substring(st.text, 1, 60)+ '...' [desc],
	cast(qs.total_worker_time/qs.execution_count as nvarchar) AS digit,
	3
FROM sys.dm_exec_query_stats AS qs
CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) AS st
CROSS apply sys.dm_exec_query_plan (qs.plan_handle) AS qp
where qs.total_worker_time >100 
 order by qs.total_worker_time/qs.execution_count desc 


-- ... здесь добавление других результатов в таблицу @t1

-- формируем разметку результата 
select @s= STUFF(( 
select ' <h3>' + db + ' - ' + title + iif(isnull(digit, '')<>'', ' ('+digit +')', '' ) + '</h3>' + 
	 '<p>' + [desc] + '</p>' from (
	select * from @t1
 ) t1 
 order by db, title desc 
  FOR XML PATH, TYPE).value('.[1]','nvarchar(max)' ), 1, 1, '')  

END;

1 раз в день вызываем эту процедуру и отправляем почту через внешнее действие: 

CREATE PROCEDURE [dbo].[falcon_nt_sync_day]
AS
BEGIN
    declare @s nvarchar(max) = ''
    exec [as_perf_diag] @level = 1, @s=@s OUTPUT
	
    if(len(@s)>0) begin     
	     select 'email' type, 'ru@rudensoft.ru' [to], 'Профилактика базы falcon.web-automation.ru' subject, @s body
    end 
END

Falcon Space - функциальная веб-платформа разработки на узком стеке MS SQL/Bootstrap. Вводная по Falcon Space

SQL-инструмент для создания личных кабинетов на сайте

Суть подхода и история создания Falcon Space

Платформа Falcon Space

Это снижение стоимости владения

за счет меньшего количества людей для поддержки

Это быстрое внесение изменений

по ходу эксплуатации программы

Это современный интерфейс

полная адаптация под мобильные устройства

Веб-приложения на чистом MS SQL. Обучение разработке на Falcon Space

Вы можете разрабатывать самостоятельно или сотрудничать с нами в плане веб-разработки на платформе Falcon Space, используя только SQL и HTML.
Смотреть примеры с кодом SQL
Документация по платформе

Google поиск по нашей документации