Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Алерт на добавление записи в таблицу  [new]
JMLabs
Member

Откуда:
Сообщений: 66
Помогите пожалуйста решить такую задачу. Мне нужно настроить алерт на событие добавления записи в таблицу базы данных MSSQL. Т.е. во время записи в БД должно отсылаться письмо на электронную почту. Как это можно сделать средствами Management Studio или с помощью SQL запроса?
6 окт 16, 19:27    [19752522]     Ответить | Цитировать Сообщить модератору
 Re: Алерт на добавление записи в таблицу  [new]
Очень лысый
Member

Откуда: БОМЖ
Сообщений: 590
Что-то вроде этого

CREATE TRIGGER [dbo].[tr_Ins_MyTable]
ON [dbo].[MyTable]
AFTER INSERT
AS
set nocount on

DECLARE
	@CustomerName varchar(50),
	@CustEmail	varchar(255),
	@body varchar(max)

SELECT
	@CustomerName = c.CustomerName,
	@CustEmail = c.CustEmail,
	@body = 'Blah, blah, blah' + i.ProductName + 'mode blah''s' + cast(i.Quantity as vahchar(10))
FROM INSERTED i			-- Assumes one row inserted - You'll need to change this if multiple rows can be inserted
inner join
	Customer
		on i.CustomerID = c.customerID

exec msdb.dbo.sp_send_dbmail 
	@profile_name = '<<Profile Name>>',	-- Get this value from Server configuration
	@recipients = @CustEmail, 
	@subject = 'Blah, blah', 
	@body = @body
6 окт 16, 19:32    [19752534]     Ответить | Цитировать Сообщить модератору
 Re: Алерт на добавление записи в таблицу  [new]
JMLabs
Member

Откуда:
Сообщений: 66
Спасибо, судя по всему это то что нужно только я не очень понимаю как это работает (секция SELECT). Буду очень признателен за пояснения
6 окт 16, 19:40    [19752549]     Ответить | Цитировать Сообщить модератору
 Re: Алерт на добавление записи в таблицу  [new]
Очень лысый
Member

Откуда: БОМЖ
Сообщений: 590
Ну это я чужой пример слямзил. Там выбирается типа имя и emal кастомера из вставленной в таблицу строки. И типа по этому адресу отсылается. В вашем случае это могут быть какие-то другие данные из вставленной строки, которые нужно отослать. Либо можно вообще этот select исключить и пользовать чисто

exec msdb.dbo.sp_send_dbmail
@profile_name = '<<Profile Name>>', -- Get this value from Server configuration
@recipients = @CustEmail,
@subject = 'Blah, blah',
@body = @body

Ну и не забыть настроить перед тем профиль в MSSQL для отправки сообщений.
6 окт 16, 20:09    [19752608]     Ответить | Цитировать Сообщить модератору
 Re: Алерт на добавление записи в таблицу  [new]
JMLabs
Member

Откуда:
Сообщений: 66
А вдруг есть возможность отправлять в письме и содержимое вставленного в таблицу? Вообще космос был бы
6 окт 16, 20:37    [19752674]     Ответить | Цитировать Сообщить модератору
 Re: Алерт на добавление записи в таблицу  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
JMLabs,

автор
@body = 'Blah, blah, blah' + i.ProductName + 'mode blah''s' + cast(i.Quantity as vahchar(10))

пишите что хотите, кроме того @body_format ставите html и рисуйте хоть таблицу...
https://msdn.microsoft.com/en-us/library/ms190307.aspx
6 окт 16, 21:07    [19752759]     Ответить | Цитировать Сообщить модератору
 Re: Алерт на добавление записи в таблицу  [new]
JMLabs
Member

Откуда:
Сообщений: 66
Никак не получается в тему письма вставить результат выборки select
Помогите пожалуйста
7 окт 16, 00:41    [19753179]     Ответить | Цитировать Сообщить модератору
 Re: Алерт на добавление записи в таблицу  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7868
JMLabs,

зачем в тему-то.
7 окт 16, 10:18    [19753924]     Ответить | Цитировать Сообщить модератору
 Re: Алерт на добавление записи в таблицу  [new]
Mind
Member

Откуда: Лучший город на Земле
Сообщений: 2322
JMLabs
Никак не получается в тему письма вставить результат выборки select
Помогите пожалуйста
Запишитесь на курсы по программированию. Или научитесь хотя бы объяснять что именно у вас не получается.
8 окт 16, 00:20    [19758227]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить